IOError:[Errno 4]中断函数调用PythonService.exe

时间:2016-05-25 06:45:43

标签: python-2.7 ioerror

我在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在服务中运行相同的错误。

有谁知道这个错误的原因以及如何在服务中重现它?

1 个答案:

答案 0 :(得分:0)

我尝试了所有可能的方法将信号发送到PythonService.exe但无法重现它。我尝试了kill,注销和其他方法来生成错误。

但是我没有成功,最后我找到了通过关闭机器来重现它的方法。当您的程序陷入睡眠状态且关闭时,这种情况非常罕见。因此,重现同一个需要增加睡眠时间,然后运行服务。

实际上我的云虚拟机当时可能已经进行了维护。