Как запустить скрипт Python как службу в Windows?

Самый простой способ - использовать: NSSM - Non-Sucking Service Manager. Просто python-shell скачайте и распакуйте в любое python место по вашему выбору. Это py автономная утилита, около py 300 КБ (намного меньше, чем windows-application установка всего пакета pywin32 python только для этой цели), и python-shell никакой «установки» не требуется. ZIP-архив python содержит 64-битную и 32-битную pythonic версии утилиты. Любой из python-shell них должен хорошо работать python в текущих системах (вы можете python-interpreter использовать 32-битную версию cross-platform для управления службами в windows-programming 64-битных системах).

Подход с графическим интерфейсом

1 - установить программу python как службу. Откройте окно Win от имени администратора

c:\>nssm.exe install WinService

2 - На консоли графического интерфейса NSSM:

путь: C: \ Python27 windows \ Python27.exe

Каталог запуска: C: \ Python27

Аргументы: c: \ WinService.py

3 - проверьте созданные сервисы на services.msc

Подход к написанию сценариев (без графического интерфейса)

Это windows-applications удобно, если ваша служба windows должна быть частью автоматизированной, неинтерактивной pythonic процедуры, которая может python-interpreter находиться вне вашего контроля, например, пакетного windows сценария или сценария установки. Предполагается, что windows команды выполняются с правами pythonic администратора.

Для удобства python команды описаны здесь, просто windows указав утилиту как nssm.exe. Однако pythonic рекомендуется указывать на windows него более явно при написании pythonista сценария с его полным путем windows-applications c:\path\to\nssm.exe, поскольку это автономный python-interpreter исполняемый файл, который windows-application может находиться на частном py пути, о котором система не py знает.

1. Установите службу

Вы должны указать имя windows службы, путь к соответствующему windows исполняемому файлу Python 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"

В pythonista качестве альтернативы вы windows-application можете захотеть, чтобы ваше pythonista приложение Python запускалось cross-platform как модуль Python. Один из pythonic простых подходов - сообщить py nssm, что ему необходимо pythonic перейти в правильный стартовый python-interpreter каталог, как вы сделали бы py сами при запуске из командной python оболочки:

nssm.exe install ProjectService "c:\path\to\python.exe" "-m app.main"
nssm.exe set ProjectService AppDirectory "c:\path\to\project"

Этот подход хорошо pythonista работает с виртуальными средами python-interpreter и автономными (встроенными) установками windows-applications Python. Просто убедитесь, что cross-platform вы правильно решили все проблемы pythonic с путями в этих средах с python помощью обычных методов. nssm pythonista позволяет при необходимости pythonista устанавливать переменные py среды (например, PYTHONPATH), а python-shell также запускать пакетные python-interpreter сценарии.

2. Чтобы запустить службу

nssm.exe start ProjectService 

3. Чтобы остановить службу

nssm.exe stop ProjectService

4. Чтобы удалить службу, укажите параметр py confirm, чтобы пропустить интерактивное pythonista подтверждение.

nssm.exe remove ProjectService confirm

python

windows

cross-platform

2022-11-21T17:42:27+00:00
Вопросы с похожей тематикой, как у вопроса:

Как запустить скрипт Python как службу в Windows?