【问题标题】:IOError: [Errno 4] Interrupted function call PythonService.exeIOError:[Errno 4] 函数调用中断 PythonService.exe
【发布时间】:2016-05-25 18:17:27
【问题描述】:

我在 pywin32 API 的帮助下将 python 脚本作为 Windows 后台服务运行,该 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 在服务中运行相同的错误。

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

【问题讨论】:

    标签: python-2.7 ioerror


    【解决方案1】:

    我尝试了所有可能的方法将信号发送到 PythonService.exe,但无法重现它。我尝试了kill,log off等方法来产生错误。

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

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

    【讨论】:

      猜你喜欢
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-28
      • 1970-01-01
      • 2010-11-11
      • 2015-03-26
      相关资源
      最近更新 更多