运行Python 3.6.5,PyWin32223。
安装后,我在路径中包含了C:\ Python32 \ lib \ win32文件夹。
我只是运行正常的testService shell,该shell似乎遍布整个Internet。可以在下面找到。
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):
pass
if __name__ == '__main__':
win32serviceutil.HandleCommandLine(AppServerSvc)
我可以“编译”并很好地安装服务,一旦运行它,我就会收到检查系统日志的错误消息。当我这样做时,出现以下错误。
“测试服务流程”服务因服务特定的错误“不正确”功能而终止。.
这十年来,我一直无法通过Google找到任何帮助。我是该库的新手,我发现的唯一帮助是将其lib添加到路径中。如果它是路径错误,则不再存在。有人有什么想法吗?
谢谢!
答案 0 :(得分:0)
事实证明,这是一个权限问题。我请求root 30秒钟,并且像一个吊饰一样工作。仅供参考,如果有人遇到此问题。
答案 1 :(得分:0)
就我而言,问题出在我运行python模块的方式上。我没有执行Python脚本,而是使用
$ python -m module
在适当的目录中运行时,此方法可以正常工作,但作为服务运行时,找不到该模块。因此,如果直接使用Python执行模块的解决方案是 pip install 该模块,以便服务可以找到它。