Программа должна иметь опцию -start - данная опция должна запустить службу "Test_windows_Service".5.Программа должна иметь опцию -stop - данная опция должна остановить службу "Test_windows_Service".6. Программа должна оформлять логи своей работы.7. Программа должна выводить в консоль статус службы "Test_windows_Service".
Для создания службы на Питоне вам понадобится pywin32 модуль. Ниже представлен код программы:
Код:
python
import win32serviceutil
import win32service
import win32event
import servicemanager
import socket
import sys
import logging
import time
class TestWindowsService(win32serviceutil.ServiceFramework):
_svc_name_ = "Test_windows_Service"
_svc_display_name_ = "Test Windows Service"
_svc_description_ = "This is a test Windows service"
def __init__(self, args):
win32serviceutil.ServiceFramework.__init__(self, args)
self.stop_event = win32event.CreateEvent(None, 0, 0, None)
socket.setdefaulttimeout(60)
self.run = True
def SvcStop(self):
self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
win32event.SetEvent(self.stop_event)
self.run = False
def SvcDoRun(self):
self.ReportServiceStatus(win32service.SERVICE_RUNNING)
logging.info("Test Windows Service started")
while self.run:
time.sleep(5)
logging.info("Test Windows Service running")
logging.info("Test Windows Service stopped")
def ctrlHandler(ctrlType):
return True
if __name__ == '__main__':
if len(sys.argv) == 1:
servicemanager.Initialize()
servicemanager.PrepareToHostSingle(TestWindowsService)
servicemanager.StartServiceCtrlDispatcher()
else:
win32serviceutil.HandleCommandLine(TestWindowsService)
Для установки службы используйте командную строку:
Код:
python program.py1 -install
Для удаления службы используйте командную строку:
Код:
python program.py1 -uninstall
Для запуска службы используйте командную строку:
Код:
python program.py1 -start
Для остановки службы используйте командную строку:
Код:
python program.py1 -stop
Кроме того, программа записывает логи в файл test_service.log. Для проверки статуса службы можно воспользоваться командой sc query Test_windows_Service.