Запуск службы Windows при запуске компьютера

#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:

Попробуйте планировщик задач:

http://support.microsoft.com/kb/308569