【问题标题】:Start python .py as a service in windows在 Windows 中将 python .py 作为服务启动
【发布时间】:2011-12-29 10:04:30
【问题描述】:

我创建了一个 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,当 google 搜索时显示它不是我正在尝试启动的有效 exe。我知道它不是 .exe 而是 .py 并将其链接到使用 python.exe 打开应该可以解决此问题,但我犯了一个错误。在将脚本链接到使用 python.exe 时,有没有人知道我可能做错了什么

谢谢

【问题讨论】:

标签: python windows-services


【解决方案1】:

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

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

假设 Windows Resource Kit 安装在 C:\Program Files\Windows Resource Kits\ 运行:

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

现在,运行 regedit。

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

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

输入 Parameters 并回车。

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

输入 Application 并回车。

右键单击应用程序并选择修改。

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

点击确定按钮。

然后繁荣!你有一个不错的新服务。

【讨论】:

  • 好的,谢谢,我希望不用安装任何东西就可以离开,但这会起作用。谢谢
  • 您实际上不需要安装任何东西!只需获取 srvany.exe(安装一次并获取它,或 google 即可)。将其放入您的脚本文件夹并将 binPath 设置为它。这就是我们在生产环境中所做的。
  • srvany.exe - 对于没有Windows资源工具包的新PC如何安装?
  • YumYumYum 您可以下载 Windows 资源工具包,安装它,然后将 srvany.exe 复制到您想要的任何文件夹中。我将它复制到包含用于服务的脚本的同一文件夹中。效果很好!
【解决方案2】:

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

你也可以试试py2exe :)

【讨论】:

    【解决方案3】:

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

    第一步:

    • 下载并安装 Windows 资源工具包。
    • 在我的框中找到: 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] 创建服务成功

    第二步:创建一个file.reg,内容如下并双击

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

    第 3 步:现在启动服务,它将执行您在 file.reg 中分配的任何内容

    完成

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-30
      • 1970-01-01
      • 2014-08-26
      • 1970-01-01
      • 2016-09-13
      • 1970-01-01
      相关资源
      最近更新 更多