我正在尝试安装并启动一个简单的CherryPy服务器作为一个Windows。
下面是脚本:(删除一些行以缩短脚本)。它在从命令行手动执行时完全正常工作)
app = AdminMediaHandler(django.core.handlers.wsgi.WSGIHandler())
logged_app = TransLogger(app)
server = wsgiserver.CherryPyWSGIServer( ('127.0.0.1', 8632), logged_app, server_name='localhost', numthreads=20 )
try:
server.start()
except KeyboardInterrupt:
server.stop()我使用sc.exe来安装和启动服务。安装进行得很好,但我似乎无法开始这项服务。
使用的命令是:(请注意路径中有空格,尽管我用双引号处理这个问题,而且binPath在通过命令行手动执行其字符串时正在工作)
> sc.exe create "ServiceName" binPath= "\"C:\Path to Python\python.exe\" \"C:\Path to CherryPy Script\cherryserver.py\""
> sc.exe start "ServiceName"无论是尝试使用sc.exe启动服务还是通过services.msc GUI启动服务,我都会收到这个错误:
[SC] StartService FAILED 1053:
The service did not respond to the start or control request in a timely fashion.据我所知,这是因为python.exe没有实现Windows。
我不希望使用.exe从脚本创建py2exe。
我发现这个答案建议使用与sc.exe不同的工具安装服务,称为srvany.exe & instsrv.exe。然而,我在Win2K资源工具包网站中找不到它们。
有人知道如何成功地安装和启动这个.py吗?
有人知道吗
发布于 2011-05-19 23:30:59
我最终使用了ServiceInstaller aka SMaster,作为在本答复中说明。给出的答案中的URL被破坏了,我找不到一个有效的URL。我只是提前在本地找到了srunner.exe。
注意,还有另一个障碍需要克服,因为ServiceInstaller 无法处理带有 spaces 的paths文件。
因此,我使用旧的DOS路径格式进行服务注册。
我没有注册C:\Program Files\MyApp\python.exe,而是注册了C:\PROGRA~1\MyApp\python.exe。
发布于 2011-05-19 17:48:08
CherryPy和作为Windows服务启动的模块一起上船。有关如何安装和运行它的说明,请参见另一个这样的问题。您可能希望从当前的方法(直接将Django应用程序传递给WSGIServer)转向使用cherrypy.tree.graft。
发布于 2015-08-21 06:36:10
我更喜欢将普通脚本安装为服务的nssm。您可以根据您的系统在C:\Windows\ system 32或C:\ nssm.exe \SysWOW64 64目录中复制该。在此之后,您可以按以下方式安装服务:
nssm install yourservicename对于python脚本,必须将应用程序路径设置为python.exe,参数是脚本self。

启动/停止/编辑服务的其他常见命令有:
nssm start yourservicename
nssm stop yourservicename
nssm edit yourservicenamehttps://stackoverflow.com/questions/6061240
复制相似问题