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
; 概念
- 后台进程
** 守护进程
** 驱动程序
参考资料
进一步资料
*
- David B. Probert, [http://www.i.u-tokyo.ac.jp/edu/training/ss/lecture/new-documents/Lectures/11-WindowsServices/WindowsServices.ppt Windows Service Processes]
- [https://technet.microsoft.com/en-us/sysinternals/bb963902.aspx Windows Sysinternals: Autoruns for Windows v13.4] —An extremely detailed query of services
评论 (0)