Форум сайта python.su
1
Всем привет, пробую для сервака win 2012 R2 сделать небольшой сервис, основанный на моем скрипте из питона. В интернете ходит 3 способа и все не работают в моем случае. Может кто-то что-то подскажет или посоветует.
Используемый скилет:
class AppServerSvc (win32serviceutil.ServiceFramework): _svc_name_ = "test1" _svc_display_name_ = "test1 service" def __init__(self,args): win32serviceutil.ServiceFramework.__init__(self,args) self.hWaitStop = win32event.CreateEvent(None,0,0,None) socket.setdefaulttimeout(60) def SvcStop(self): self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING) win32event.SetEvent(self.hWaitStop) def SvcDoRun(self): servicemanager.LogMsg(servicemanager.EVENTLOG_INFORMATION_TYPE, servicemanager.PYS_SERVICE_STARTED, (self._svc_name_,'')) self.main() def main(self): pass if __name__ == '__main__': win32serviceutil.HandleCommandLine(AppServerSvc)
>>>python myscript.py install

>>>sc create test1 binpath= "C:\Windows\Python37-32\Python.exe c:\myscript.py" DisplayName= "test1 service" start= auto

Отредактировано Acamori (Авг. 14, 2018 10:15:42)
Офлайн
13
Тут у тебя скрипт сам по себе правильно не работает, прочитай ошибку то!
# Life loop while alive: if (fun > boredom) and money: pass_day(fun, boredom, money) continue else: break
Офлайн
1
Сервис начал стартовать когда изменил часть кода в if __name__
if __name__ == '__main__': if len(sys.argv) == 1: servicemanager.Initialize() servicemanager.PrepareToHostSingle(AppServerSvc) servicemanager.StartServiceCtrlDispatcher() else: win32serviceutil.HandleCommandLine(AppServerSvc)
Отредактировано Acamori (Авг. 15, 2018 10:38:33)
Офлайн
1
Причину и решение нашел, тему можно закрывать.
Офлайн