Преобразование Python в службу: запуск скриптов как службы Windows

Многие, включая меня, любят Python за автоматизацию задач и создание API для сторонних утилит. Но, к сожалению, тащить за собой библиотеку pywin32 только для того, чтобы преобразовать Python в службу, — не лучшая идея, особенно когда pywin32 по какой-то причине конфликтует с проектом, который мы сами не писали.

Существует несколько хороших утилит, решающих эту проблему:

Но когда нужна надежность и быстрое развертывание скриптов, ими может быть сложно пользоваться.
По этим причинам сегодня я расскажу вам о EXE to Service, который стремится к преобразованию в три клика и надежности.


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

Шаг 1: Откройте EXE to Service

После установки EXE to Service на рабочем столе появится ярлык.

Графический интерфейс предназначен только для упрощения создания службы. Если вы используете Windows Server без графического интерфейса, у вас есть два варианта:


Шаг 2: Создайте новую службу

EXE to Service уже включает готовый пример преобразования Python в службу.

Просто нажмите кнопку "Создать из примера".

Преобразование Python в службу


Шаг 3: Укажите путь к скриптам Python

В появившемся окне необходимо указать правильные пути:

Конфигурация Python в службу


Шаг 4: Сохраните и запустите службу

Нажмите "Создать службу", чтобы создать службу Windows.

Если вы хотите, чтобы служба запустилась немедленно на этом компьютере, нажмите "Запустить".

После этого Python будет:

В будущих статьях я объясню, как создавать уведомления и оповещения для критических ситуаций в Python, когда возникают утечки памяти и процессора.


Заключение

Python изначально разрабатывался как язык высокого уровня и не предназначен для работы в службах Windows — но такие инструменты, как EXE to Service, чисто решают эту проблему. Оберните ваш скрипт .py в оболочку, и он будет запускаться при загрузке системы, продолжать работу после выхода из системы и интегрироваться с services.msc — без сложных обходных путей.


Скачайте EXE_Service.msi и превратите любой .exe в службу Windows за секунды.