在昨天发布的另一个问题中,我对如何在Windows中将Python脚本作为服务运行提供了很好的建议。我唯一想知道的是:Windows如何了解可以在本机工具(“管理工具”中的“服务”窗口)中管理的服务。即 在Windows下,等效于在Linux下将启动/停止脚本放在/etc/init.d中的Windows是什么?
与Windows中大多数“可感知”的东西一样,答案是“注册表”。
看看这篇Microsoft知识库文章:http : //support.microsoft.com/kb/103000
搜索“可以由服务控制器启动并遵守服务控制协议的Win32程序”。这是您感兴趣的一种服务。
服务注册(KEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ myservice的内容)包含有关该服务的信息,包括其可执行位置,失败时应采取的措施(停止OS?),在启动该服务之前必须启动哪些服务等信息。 ,以什么用户身份运行。
关于服务控制协议,程序的main()应该调用Windows API调用,为服务的启动,停止和暂停设置回调。您在这些回调中所做的全部取决于您。