Мне нужна помощь с сервисом python.
У меня есть сервис, написанный на Python.Что мне нужно сделать, это передать ему некоторые аргументы.Позвольте мне привести пример, чтобы объяснить это немного лучше.
Допустим, у меня есть служба, которая ничего не делает, но что-то записывает в журнал.Я хотел бы записать одно и то же в журнал несколько раз, поэтому я использую цикл.Я хотел бы передать счетчик для цикла, когда я запускаю службу, но я понятия не имею, как.Я запускаю сервис с:
win32serviceutil.HandleCommandLine(WinService)
Я ищу что-то вроде
win32serviceutil.HandleCommandLine(WinService,10)
Мне все равно, как это делается, если я могу передать ему аргументы,Пытались заставить это работать на лучшую часть дня без удачи.Кроме того, служба не запускается напрямую, а импортируется, а затем запускается оттуда.
РЕДАКТИРОВАТЬ:
Вот пример, надеюсь, он кое-что прояснит.
Это в WindowsService.py:
import win32serviceutil, win32service, win32event, servicemanager, win32serviceutil
class LoopService(win32serviceutil.ServiceFramework):
_svc_name_ = "LoopService"
_svc_description_ = "LoopService"
_svc_display_name_ = "LoopService"
def __init__(self,args):
win32serviceutil.ServiceFramework.__init__(self,args)
self.hWaitStop = win32event.CreateEvent(None,0,0,None)
def SvcStop(self):
self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING);
win32event.SetEvent(self.hWaitStop);
def SvcDoRun(self):
i = 0;
while i < 5:
servicemanager.LogInfoMsg("just something to put in the log");
i += 1
win32event.WaitForSingleObject(self.hWaitStop, win32event.INFINITE)
Этонаходится в основном скрипте:
import service.WindowsService, win32serviceutil
win32serviceutil.HandleCommandLine(service.WindowsService.LoopService);
Как и сейчас, цикл будет выполняться фиксированное количество раз.То, что я хотел бы, это просто отправить значение в службу как-то.Мне все равно, как.