2016-05-25 3 views
0

Я запускаю скрипт python как справочную службу Windows с помощью pywin32 API, который предоставляет PythonService.exe, которые запускают мой скрипт.IOError: [Errno 4] Прерванный вызов функции 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

Я пробовал все возможные способы отправки сигналов PythonService.exe, но не смог воспроизвести его. Я пытался убить, выйти из системы и другие методы для генерации ошибки.

Но никому из них не удастся, наконец, я нашел способ воспроизвести его выключением машины. Это очень редкий сценарий, когда ваша программа застревает во сне и происходит shutdown. Следовательно, для воспроизведения одного и того же нужно увеличить время сна, а затем запустить сервис.

На самом деле моя Облачная VM, возможно, пошла на обслуживание в то время.