最简单的方法是使用:NSSM -非吸吮服务管理器。只需下载并解压缩到您选择的位置。它是一个自包含的实用程序,大约300KB(比为此目的安装整个pywin32套件少得多),不需要“安装”。zip包含一个64位版本和一个32位版本的实用程序。两者都应该在当前系统上运行良好(您可以使用32位版本来管理64位系统上的服务)。
GUI的方法
1 -将python程序作为服务安装。以管理员身份打开Win提示符
c:\>nssm.exe install WinService
2 -在NSSM的GUI控制台:
路径:C: \ Python27 \ Python27.exe
启动目录:C:\Python27
参数:c: \ WinService.py
3 -在services.msc上检查已创建的服务
脚本方法(没有GUI)
如果您的服务应该是自动化的、非交互式过程的一部分,例如批处理或安装程序脚本,那么这是非常方便的。假设这些命令是使用管理权限执行的。
为了方便起见,这里将命令简单地称为nssm.exe。但是,建议在脚本中用完整路径c:\path\to\nssm.exe更显式地引用它,因为它是一个自包含的可执行文件,可能位于系统不知道的私有路径中。
1. 安装服务
您必须为服务指定一个名称,正确的Python可执行文件的路径,以及脚本的路径:
nssm.exe install ProjectService "c:\path\to\python.exe" "c:\path\to\project\app\main.py"
更明确:
nssm.exe install ProjectService
nssm.exe set ProjectService Application "c:\path\to\python.exe"
nssm.exe set ProjectService AppParameters "c:\path\to\project\app\main.py"
或者,你可能希望你的Python应用程序作为一个Python模块启动。一个简单的方法是告诉nssm它需要更改到正确的起始目录,就像你自己从命令shell启动时所做的那样:
nssm.exe install ProjectService "c:\path\to\python.exe" "-m app.main"
nssm.exe set ProjectService AppDirectory "c:\path\to\project"
这种方法适用于虚拟环境和自包含(嵌入式)的Python安装。只需确保在这些环境中使用常规方法正确解决了任何路径问题。nssm有一种方法可以在需要时设置环境变量(例如PYTHONPATH),还可以启动批处理脚本。
2. 启动服务
nssm.exe start ProjectService
3.停止服务
nssm.exe stop ProjectService
4. 若要删除服务,请指定confirm参数以跳过交互式确认。
nssm.exe remove ProjectService confirm