Konwertuj język Python na usługę: uruchamiaj skrypty jako usługę systemu Windows
Wielu ludzi, w tym ja, ceni Pythona za automatyzację zadań i tworzenie API dla narzędzi firm trzecich. Niestety, wciąganie biblioteki pywin32 tylko po to, aby przekonwertować Pythona na usługę, nie jest idealnym rozwiązaniem — zwłaszcza gdy pywin32 z jakiegoś powodu koliduje z projektem, którego sami nie napisaliśmy.
Istnieje kilka dobrych narzędzi rozwiązujących ten problem:
- NSSM
- WinSW.
Jednak gdy potrzebna jest niezawodność i szybkie wdrożenie skryptu, mogą być one trudne w użyciu. Z tych powodów opowiem dziś o EXE to Service, które ma na celu konwersję w trzy kliknięcia i zapewnienie niezawodności.
Jak przekonwertować Pythona na usługę Windows
Krok 1: Otwórz EXE to Service
Po zainstalowaniu EXE to Service na pulpicie pojawi się skrót.
Interfejs graficzny ma na celu jedynie uproszczenie tworzenia usługi. Jeśli używasz Windows Server bez interfejsu graficznego, masz dwie opcje:
- Utwórz usługę na zwykłym komputerze PC, a następnie przenieś ją na serwer.
- Uruchom EXE to Service bezpośrednio na serwerze za pomocą wiersza poleceń.
Krok 2: Utwórz nową usługę
EXE to Service zawiera już gotowy przykład konwersji Pythona na usługę.
Wystarczy kliknąć przycisk "Utwórz z przykładu".

Krok 3: Ustaw ścieżkę do skryptów Pythona
W oknie, które się pojawi, należy podać poprawne ścieżki:
- Ścieżka do pliku wykonywalnego Python.exe:
Domyślnie (specyficzne dla użytkownika):C:\Users\<Twoja_nazwa_użytkownika>\AppData\Local\Programs\Python\Python<wersja>\ - Katalog roboczy:
Wskaż folder, w którym znajduje się Twój plik skryptu. - Argumenty:
C:\Ścieżka\Do\Twojego\Skryptu.py

Krok 4: Zapisz i uruchom usługę
Kliknij "Utwórz usługę", aby utworzyć usługę Windows.
Jeśli chcesz, aby usługa uruchomiła się natychmiast na tym komputerze, kliknij "Uruchom".
Po tym Python będzie:
- Uruchamiał się jako usługa Windows
- Uruchamiał się automatycznie wraz z systemem
- Możliwy do zarządzania przez Menedżera usług Windows (
services.msc)
W przyszłych artykułach wyjaśnię, jak tworzyć powiadomienia i alerty dla sytuacji krytycznych w Pythonie, gdy występują wycieki pamięci i procesora.
Podsumowanie
Python został pierwotnie opracowany jako język wysokiego poziomu i nie jest przeznaczony do uruchamiania w usługach Windows — ale narzędzia takie jak EXE to Service rozwiązują ten problem w czysty sposób. Opakuj swój skrypt .py w powłokę, a będzie on uruchamiał się przy starcie systemu, działał po wylogowaniu i integrował się z services.msc — bez potrzeby stosowania skomplikowanych obejść.