Я пытаюсь установить и запустить простой 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 Service API.
Я не хочу создавать .exe
из скрипта, используя py2exe .
Я нашел этот ответ , который предлагает установить службу с использованием инструментов, отличных от sc.exe
, называемых srvany.exe
& instsrv.exe
. Однако я не могу найти их на веб-сайте Win2K Resource Kit .
Кто-нибудь знает, как успешно установить и запустить .py
в качестве Windows?
Кто-нибудь знает