2016-12-17 2 views
3

Я запускаю код python win_service.py установить из обычной командной строки, где я получаю доступ запрещен.Служба Windows Python «Начальная служба ошибки: служба не ответила на запрос запуска или управления своевременно»

Установка службы TestService

установка Ошибка службы: отказано в доступе. (5)

, который я смог решить, когда я запустил командную строку, начиная с администратора.

Мне удалось установить сервис, но мне не удалось запустить службу.

служба установлена ​​

Запуск службы TestService

отправную Ошибка службы: Служба не ответила на запрос запуска или управления своевременно.

import win32serviceutil 
import win32service 
import win32event 
import servicemanager 
import socket 

class AppServerSvc (win32serviceutil.ServiceFramework): 
    _svc_name_ = "TestService" 
    _svc_display_name_ = "Test 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): 
     print "running" 

if __name__ == '__main__': 
    win32serviceutil.HandleCommandLine(AppServerSvc) 

Что я делаю не так, есть ли другой способ установить сервис, который позволит решить проблему и как динамически запустить его от имени администратора.

ответ

1

Возможно, что ваш сервис не запускается, так как он не может найти исполняемый файл. У меня была аналогичная проблема, которая была решена путем добавления некоторых связанных с pywin32 каталогов в мой системный путь. Вы можете сделать это с помощью setx:

setx /M PATH "%PATH%;C:\Python27;C:\Python27\Scripts;C:\Python27\Lib\site-packages\pywin32_system32;C:\Python27\Lib\site-packages\win32" 

Попробуйте запустить это в CMD окно с правами администратора и настроить пути, чтобы соответствовать вашей собственной установки питона.

Смежные вопросы

 Смежные вопросы