在Windows中启动python .py作为服务

时间:2011-12-29 10:04:30

标签: python windows-services

我已经创建了一个Windows服务来启动.py脚本。

sc create "Maraschino" binPath= "C:\HTPC\Maraschino\maraschino-cherrypy.py" DisplayName=    "Maraschino" depend= "Tcpip"

然后我添加了一个注册表项来链接.py以使用python.exe打开

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Maraschino\Parameters]
"AppDirectory"="C:\\Python27"
"Application"="C:\\Python27\\python.exe C:\\HTPC\\Maraschino\\maraschino-cherrypy.py"

然而,当我尝试启动服务时,我得到错误193 0xc1,当谷歌搜索显示它不是一个有效的exe我试图启动。我知道它不是.exe而是.py并将其链接到用python.exe打开应该解决这个问题但是我犯了一个错误。在链接脚本以使用python.exe

时,是否有人对我可能做错了什么有所了解

由于

3 个答案:

答案 0 :(得分:17)

您可以使用 srvany.exe 执行此操作,该工具是Microsoft专门为此类任务执行的工具。

首先,下载并安装Windows Resource Kit。 注意:您只需要srvany.exe,它适用于所有版本的Windows。

假设Windows资源工具包安装在C:\ Program Files \ Windows Resource Kits \ run:

sc create "[YourService]" binPath= "C:\Program Files\Windows Resource Kits\srvany.exe"

现在,运行 regedit

在“注册表编辑器”对话框中选择 HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Services > [YourService]

选择[YourService]后,点击编辑>新>工具栏中的键。

输入参数并按Enter键。

从工具栏中选择编辑>新>字符串值。

输入应用并按Enter键。

右键单击“应用程序”,然后选择“修改”。

C:\Python27\python.exe C:\[YourServicePath].py

点击“确定”按钮。

繁荣!你有一个很好的新服务。

答案 1 :(得分:0)

我不知道sc是如何工作的,但我认为必须将参数传递给二进制文件,所以你可以尝试注册“C:\ Python27 \ python.exe C:\ HTPC \ Maraschino \ maraschino -cherrypy.py“而不是。

您也可以尝试py2exe:)

答案 2 :(得分:0)

@Ohad的更新。首先将srvany.exe部署到所有机器

第1步:

  • 下载并安装Windows Resource Kit。
  • 在我的框中找到了:C:\ Program Files(x86)\ Windows Resource Kits \ Tools \ srvany.exe。
  • 然后打开命令提示符并按

    sc create“[YourService]”binPath =“C:\ Program Files(x86)\ Windows Resource Kits \ Tools \ srvany.exe”start = auto DisplayName =“[YourService Monitor]”

    [SC] CreateService SUCCESS

步骤2:制作一个包含以下内容的file.reg,然后双击它

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\[YourService]\Parameters]
"Application"="C:\\[YourService Executable].exe"

步骤3:现在启动服务,它将执行你在file.reg

中分配的内容

完成