Windows服务

Windows服务是指Windows NT操作系统中的一种运行在后台的计算机程序。它在概念上类似于Unix守护进程。

Windows服务可以配置为在操作系统启动时运行,并且在Windows运行期间持续在后台运行。服务也可以手动或基于某个事件而启动。Windows NT操作系统包含众多服务,分别运行在三种用户帐户环境中:系统、网络服务和本地服务。这些Windows组件通常采用Windows服务托管进程。因为Windows服务运行在其自身的专用用户帐户中,它们可以在用户未登录时活动。

在Windows Vista之前,安装为“交互服务”的服务可以与Windows桌面交互和显示图形用户界面。但在Windows Vista中,交互服务已被弃用,并且可能无法正常运行。

管理
Windows管理员可以管理服务,通过:

  • “服务”扩展(在Windows控制面板的“管理工具”中)
  • Sc.exe
  • Windows PowerShell

服务扩展
服务扩展是基于Microsoft管理控制台提供的一个组件,它可以连接到本地计算机或网络上的远程计算机,用户可以:

  • 适用时指定服务的参数
  • 更改启动类型。可接受的启动类型有:

** 自动:服务会在系统登录时启动。
** 自动(延迟启动):服务会在系统启动后过一会启动。此选项在Windows Vista中引入,目的是降低系统启动后到达桌面的等待时间。但是,不是所有服务都支持延迟启动。
** 手动:服务只会在被明确调用时启动。
** 停用:服务被停用,開機時将不会启动,開機後必須要再設定為自動或手動才能將服務啟用。

  • 更改各服务运行的用户帐户上下文
  • 配置服务发生失败时应采取的恢复操作
  • 查阅服务的依赖关系,了解服务或设备驱动程序依赖于哪些特定服务,或者特定服务依赖于哪些服务或设备驱动程序
  • 导出服务列表为文本文件或CSV文件

Sc.exe
服务扩展的命令行接口是Sc.exe,名为“服务控制”实用工具。此工具在Windows XP及更高版本中提供。

Sc.exe的管理范围仅限于本地计算机。从Windows Server 2003开始,Sc.exe不仅能做到“服务扩展”支持的操作,还可以安装和卸载服务。

  • New-Service
  • Restart-Service
  • Resume-Service
  • Set-Service
  • Start-Service
  • Stop-Service
  • Suspend-Service

其他管理工具
在服务扩展、Sc.exe和PowerShell以外,Windows还包括第三方可以操作的组件。Net.exe可以启动、停止、暂停或恢复一个Windows服务。在Windows Vista及更高版本中,Windows 任务管理器可以显示已安装服务的列表和启动与暂停它们。MSConfig可以启用或禁用Windows服务。

开发
编写原生服务
可以使用如Microsoft Visual Studio或Embarcadero Delphi等开发工具创建一个Windows服务。为了成为一个Windows服务,程序在编写上必须处理“服务控制管理器”的启动、停止和暂停消息。服务控制管理器是负责启动和停止服务的Windows组件。

封装应用程序为服务
Windows Resource Kit for Windows NT 3.51、Windows NT 4.0和Windows 2000提供工具来控制服务的注册和使用:SrvAny.exe作为服务封装器来处理预期的服务接口(例如处理service_start,然后响应service_started或service_failed)并允许配置任何可执行文件或脚本作为一个服务。Sc.exe可以安装、启动、停止和卸载新服务。

参见
; Windows服务

  • svchost.exe

; 概念

  • 后台进程

** 守护进程
** 驱动程序

参考资料
进一步资料
*

评论 (0)

  • 还没有评论,来抢沙发吧。