Преобразование Python в службу: запуск скриптов как службы Windows
Многие, включая меня, любят Python за автоматизацию задач и создание API для сторонних утилит. Но, к сожалению, тащить за собой библиотеку pywin32 только для того, чтобы преобразовать Python в службу, — не лучшая идея, особенно когда pywin32 по какой-то причине конфликтует с проектом, который мы сами не писали.
Существует несколько хороших утилит, решающих эту проблему:
- NSSM
- WinSW.
Но когда нужна надежность и быстрое развертывание скриптов, ими может быть сложно пользоваться. По этим причинам сегодня я расскажу вам о EXE to Service, который стремится к преобразованию в три клика и надежности.
Как преобразовать Python в службу Windows
Шаг 1: Откройте EXE to Service
После установки EXE to Service на рабочем столе появится ярлык.
Графический интерфейс предназначен только для упрощения создания службы. Если вы используете Windows Server без графического интерфейса, у вас есть два варианта:
- Создать службу на обычном ПК, а затем перенести её на сервер.
- Запустить EXE to Service напрямую на сервере с помощью командной строки.
Шаг 2: Создайте новую службу
EXE to Service уже включает готовый пример преобразования Python в службу.
Просто нажмите кнопку "Создать из примера".

Шаг 3: Укажите путь к скриптам Python
В появившемся окне необходимо указать правильные пути:
- Путь к исполняемому файлу Python.exe:
По умолчанию (для конкретного пользователя):C:\Users\<Ваше_имя_пользователя>\AppData\Local\Programs\Python\Python<версия>\ - Рабочий каталог:
Укажите папку, в которой находится ваш файл скрипта. - Аргументы:
C:\Путь\К\Вашему\Скрипту.py

Шаг 4: Сохраните и запустите службу
Нажмите "Создать службу", чтобы создать службу Windows.
Если вы хотите, чтобы служба запустилась немедленно на этом компьютере, нажмите "Запустить".
После этого Python будет:
- Запускаться как служба Windows
- Запускаться автоматически вместе с системой
- Управляться через Диспетчер служб Windows (
services.msc)
В будущих статьях я объясню, как создавать уведомления и оповещения для критических ситуаций в Python, когда возникают утечки памяти и процессора.
Заключение
Python изначально разрабатывался как язык высокого уровня и не предназначен для работы в службах Windows — но такие инструменты, как EXE to Service, чисто решают эту проблему. Оберните ваш скрипт .py в оболочку, и он будет запускаться при загрузке системы, продолжать работу после выхода из системы и интегрироваться с services.msc — без сложных обходных путей.