微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使Windows意识到我用Python编写的服务?

在昨天发布的另一个问题中 ,我很好的build议了Python脚本如何在Windows中作为服务运行。 我还想知道的是:Windows如何意识到可以在本机工具(“pipe理工具”中的“服务”窗口)中pipe理的服务。 I. e。 在Linux下,在/etc/init.d中放入一个启动/停止脚本的Windows相当于什么?

我可以在我的Mac上生成可在Windows上使用的python可执行文件吗?

C程序在Windows和Unix操作系统上跨平台差异

使用Qt来创build一个几乎原生的Windows应用程序?

如何检查python平台不兼容的文件夹(文件名称

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] 举报,一经查实,本站将立刻删除。

相关推荐