深入探索Python与Windows NT服务的高级应用
1. 引言
Windows NT系统中的服务是一类特殊的进程,它们能在用户未登录工作站的情况下运行,并由Windows服务控制管理器(SCM)管理。Python对Windows NT服务提供了全面支持,不仅能让Python程序作为服务运行,满足微软Back Office认证要求,还能控制其他服务,适用于多种管理任务。
2. Windows NT服务概述
Windows NT服务是具有额外职责和复杂性的普通程序。服务控制管理器(SCM)是Windows NT的重要组成部分,所有服务都需在SCM中注册。注册时需提供以下服务属性:
-运行进程的用户名:可能与当前登录系统的用户不同,甚至在服务启动时可能无人登录系统。
-依赖的其他服务:例如编写Microsoft Exchange扩展时,服务可能依赖于Microsoft Exchange信息存储服务。SCM会确保在启动服务前,所有依赖的服务都已运行;停止服务时,所有依赖该服务的服务也会停止。
-启动方式:可选择系统启动时自动启动(所有依赖项也已启动),或手动启动(由用户发起)。
SCM提供了用户界面,可在控制面板的“服务”小程序中手动控制服务,同时也提供API供程序控制服务。
服务启动和停止通常由Windows NT通过SCM负责。服务启动时需向SCM报告状态,并监听SCM的控制请求;停止时,SCM会向服务发送控制请求,服务需响应并在关闭和终止前向SCM报告。
服务