#python #windows #windows-services
#python #Windows #windows-services
Вопрос:
У меня есть служба Windows, написанная на Python. Я хочу запустить его автоматически при запуске компьютера.
Как я могу это сделать?
class AppServerSvc (win32serviceutil.ServiceFramework):
_svc_name_ = "Service"
_svc_display_name_ = "Myservice"
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.timeout = 120000
self.main() #//thread.start_new_thread(main)
def main(self):
pass
def ctrlHandler(ctrlType):
return True
if __name__ == '__main__':
win32api.SetConsoleCtrlHandler(ctrlHandler, True)
win32serviceutil.HandleCommandLine(AppServerSvc)
Комментарии:
1. из любопытства, и поскольку у меня нет опыта работы со службами — что делает приведенный выше код?
2. Я не понимаю. Службы запускаются при запуске системы.
3. Ваш установщик должен установить тип запуска службы на автоматический (или пользователь может сделать это вручную).
4. Изменение типа запуска на автоматический выполняется. Проблема заключалась в запуске основной части как угрозы. Когда я вношу изменения здесь, проблема решена. Спасибо.
5. Примечание: я предполагаю, что некоторые службы запускаются после входа пользователя в систему, но некоторые базовые запускаются раньше. Например, winlogon. Поправьте меня, если я ошибаюсь, пожалуйста.
Ответ №1:
Попробуйте планировщик задач: