我在python32 API的帮助下运行python脚本作为windows后台服务,pywin32 API提供运行我脚本的PythonService.exe。
它不断处理请求并做出响应。一旦我没有得到回应,我检查了天气服务停止了吗?我发现服务已停止,我找到的系统事件日志是:
**Traceback (most recent call last):
File "C:\Python27\lib\site-packages\win32\lib\win32serviceutil.py", line 806, in SvcRun
self.SvcDoRun()
File "\..\..\MyServices.py", line 128, in SvcDoRun
self.main()
File "\..\..\MyServices.py", line 141, in main
execfile('C:\Python27\Lib\site-packages\MyPackage\main.py')
File "C:\Python27\Lib\site-packages\MyPackage\main.py", line 26, in <module>
time.sleep(1)
IOError: (4, 'Interrupted function call')
%2: %3**
我浏览了一些博客,发现当提供SIGBREAK信号进行处理时会发生此错误,但我无法重现与myscript在服务中运行相同的错误。
有谁知道这个错误的原因以及如何在服务中重现它?
答案 0 :(得分:0)
我尝试了所有可能的方法将信号发送到PythonService.exe但无法重现它。我尝试了kill,注销和其他方法来生成错误。
但是我没有成功,最后我找到了通过关闭机器来重现它的方法。当您的程序陷入睡眠状态且关闭时,这种情况非常罕见。因此,重现同一个需要增加睡眠时间,然后运行服务。
实际上我的云虚拟机当时可能已经进行了维护。