Запустите Python .py в качестве службы в Windows - PullRequest
8 голосов
/ 29 декабря 2011

Я создал службу 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

Спасибо

Ответы [ 3 ]

17 голосов
/ 29 декабря 2011

Вы можете сделать это с помощью srvany.exe , который является инструментом от Microsoft, предназначенным для такого рода задач.

Сначала загрузите и установите Windows Resource Kit . Примечание: вам нужен только srvany.exe, который работает во всех версиях Windows.

Предполагается, что Windows Resource Kit был установлен в 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

Нажмите кнопку ОК.

И бум! у вас хороший новый сервис.

0 голосов
/ 17 июля 2014

Обновления @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: теперь запустите службу, и она выполнит все, что вы назначили в файле .reg

Готово

0 голосов
/ 29 декабря 2011

Я не знаю, как работает sc, но я думаю, что это должен быть какой-то способ передачи параметров в двоичный файл, поэтому вы можете попробовать зарегистрировать "C: \ Python27 \ python.exe C: \ HTPC \ Maraschino \ maraschino-cherrypy.py "вместо.

Вы также можете попробовать py2exe :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...