python写的windows服务,启动显示错误:服务没有及时响应启动或控制请求-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

python写的windows服务,启动显示错误:服务没有及时响应启动或控制请求

2017-10-29 15:11:29 8527 1

'''python

import win32service
import win32serviceutil
import win32event

import os, time

import winerror

class service(win32serviceutil.ServiceFramework):

_svc_name_ = 'service'
_svc_display_name_ = 'service'
_svc_description_ = 'service'

def __init__(self, args):
    win32serviceutil.ServiceFramework.__init__(self, args)
    self.hWaitStop = win32event.CreateEvent(None, 0, 0, None)
    self.isAlive = True

def SvcDoRun(self):
    while self.isAlive:
        print('do something')
        time.sleep(2)
    self.ReportServiceStatus(win32service.SERVICE_RUNNING)
    win32event.WaitForSingleObject(self.hWaitStop, win32event.INFINITE)

def SvcStop(self):
    self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
    win32event.SetEvent(self.hWaitStop)
    self.isAlive = False

if name == '__main__':

import sys
import servicemanager
if len(sys.argv) == 1:
    try:
        evtsrc_dll = os.path.abspath(servicemanager.__file__)
        servicemanager.PrepareToHostSingle(service)
        servicemanager.Initialize('service', evtsrc_dll)
        servicemanager.StartServiceCtrlDispatcher()
    except win32service.error as details:
        import winerror
        if details == winerror.ERROR_FAILED_SERVICE_CONTROLLER_CONNECT:
            win32serviceutil.usage()
else:
    win32serviceutil.HandleCommandLine(service)

'''
服务能安装,但是启动就显示如题的错误,代码我也debug过,能输入run里面那句话。然后我查看windows事件查看器,有两条错误启动的记录。
_
_
另一条记录:
_
_

弄了好久怎么也搞不定。特来请教各位

取消 提交回答
全部回答(1)
  • pamire
    2019-07-17 21:41:31

    个人也遇到这个问题,
    先确定服务:可执行文件的路径:
    "xxxxxPython36libsite-packageswin32PythonService.exe"
    PythonService.exe是否能运行,若能说明没有xxx.dll动态库问题。

    配置python path不能设置在user下,应该设置在system path下就可以了,参考下面的说明:
    https://stackoverflow.com/questions/8943371/cant-start-windows-service-written-in-python-win32serviceutil

    What you need to do is to add the Python27 to SYSTEM PATH, and not to USER PATH, since as a default the python service will get installed as a 'LocalSystem' and so when it attempts to start it uses the SYSTEM PATH variable - that's why you can run it from the command prompt, your USER PATH is right.

    个人的这个问题是这样解决的。

    1 0
相关问答

170

回答

惊喜翻倍:免费ECS+免费环境配置~!(ECS免费体验6个月活动3月31日结束)

豆妹 2014-10-29 17:52:21 232347浏览量 回答数 170

22

回答

爬虫数据管理【问答合集】

我是管理员 2018-08-10 16:37:41 148556浏览量 回答数 22

34

回答

Win Server 2003-2016 加密勒索事件必打补丁合集

妙正灰 2017-05-15 10:44:38 283273浏览量 回答数 34

43

回答

【精品问答集锦】Python热门问题

小六码奴 2019-05-30 15:27:34 142887浏览量 回答数 43

39

回答

安全组详解,新手必看教程

我的中国 2017-11-30 15:23:46 262933浏览量 回答数 39

295

回答

Linux Bash严重漏洞修复紧急通知(已全部给出最终修复方案)

qilu 2014-09-25 13:26:50 437758浏览量 回答数 295

251

回答

阿里云LNAMP(Linux + Nginx + Apache + MySQL + PHP)环境一键安装脚本

云代维 2014-02-14 15:26:06 309406浏览量 回答数 251

97

回答

Redhat/CentOS一键安装web环境全攻略

xiaofanqie 2011-08-11 14:51:38 124757浏览量 回答数 97

24

回答

【精品问答】python技术1000问(1)

问问小秘 2019-11-15 13:25:00 483467浏览量 回答数 24

23

回答

【精品问答合集】Redis热门问答

李博 bluemind 2019-05-29 16:36:15 130343浏览量 回答数 23
+关注
0
文章
2
问答
问答排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载