在昨天发布的另一个问题中 ,我很好的build议了Python脚本如何在Windows中作为服务运行。 我还想知道的是:Windows如何意识到可以在本机工具(“pipe理工具”中的“服务”窗口)中pipe理的服务。 I. e。 在Linux下,在/etc/init.d中放入一个启动/停止脚本的Windows相当于什么?
我可以在我的Mac上生成可在Windows上使用的python可执行文件吗?
C程序在Windows和Unix操作系统上跨平台差异
使用Qt来创build一个几乎原生的Windows应用程序?
Eclipse-CDT:在Windows下针对Linux进行交叉编译时的自动path发现
与Windows中大多数“意识到的”事情一样,答案是“注册表”。
看看这个Microsoft知识库文章: http : //support.microsoft.com/kb/103000
搜索“可以由服务控制器启动并遵守服务控制协议的Win32程序”。 这是你感兴趣的服务。
服务注册(KEY_LOCAL_MACHINE SYstem CurrentControlSet Services myservice的内容)包含有关服务的信息,包括其可执行位置,失败时该怎么做(停止OS?),在此之前必须启动哪些服务,它运行的用户是什么。
对于服务控制协议,您的程序的main()应该调用一个Windows API调用,为您的服务设置启动,停止和暂停的回调。 你在这些回调中所做的一切都取决于你。
这里是代码来安装一个python脚本作为服务,用python写的:)
http://code.activestate.com/recipes/551780/
这篇文章也可以帮助你:
http://essiene.blogspot.com/2005/04/python-windows-services.html
不要直接与注册表混淆。 使用SC命令行工具。 即SC创建
描述:
SC是一个命令行程序,用于与...进行通信
NT服务控制器和服务。
用法:
sc [命令] [服务名称] ...
该选项的格式为“\ serverName”
进一步的命令帮助可以通过输入:“sc [command]”来获得
命令:
枚举服务类型的状态。
queryex ---------查询服务的扩展状态,或者
枚举服务类型的状态。
开始-----------开始一项服务。
暂停-----------向服务发送暂停控制请求。
询问-----向服务发送一个INTERROGATE控制请求。
继续--------向服务发送一个CONTINUE控制请求。
停止------------发送停止请求到服务。
config ----------更改服务的配置(持续)。
描述-----更改服务的描述。
失败---------更改失败时服务所采取的行动。
qc --------------查询服务的配置信息。
qdescription ----查询服务的描述。
qfailure --------查询服务失败时所采取的行动。
创建----------创建一个服务。 (将其添加到注册表中)。
控制---------将控件发送到服务。
sdshow ----------显示服务的安全描述符。
sdset -----------设置服务的安全描述符。
GetdisplayName - 获取服务的displayName。
GetKeyName ------获取服务的ServiceKeyName。
EnumDepend ------枚举服务依赖关系。
以下命令不需要服务名称:
SC
开机------------(ok | bad)表示最后一次开机是否应该
保存为最后一次已知的启动配置
锁定------------锁定服务数据库
QueryLock -------查询SCManager数据库的LockStatus
例:
sc启动MyService
您可以使用从Windows NT资源工具包srvany.exe创建一个用户定义的服务,将显示在管理工具中…
http://support.microsoft.com/kb/137890
我正在使用这种方法来trac运行tracd(一个python脚本/服务器)。
以下是一些非常明确的说明: http : //www.tacktech.com/display.cfm?ttid = 197
这确实需要一些注册表编辑(非常简单和容易),但将允许您使任何命令行/脚本一个Windows服务。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。