无法在Windows上的python中接收信号

时间:2014-01-17 12:01:09

标签: windows python-2.7 signal-handling

在Windows上我试图通过python脚本发送信号并在另一个接收它,但在接收脚本中我的信号处理程序没有被调用。 以下是脚本: signal.py

import signal
import os
import sys
import subprocess
import time

p = subprocess.Popen([sys.executable, "a.py" ])
print "created process id :" ,p.pid
time.sleep(4)
os.kill(p.pid,signal.SIGBREAK)
err,out  = p.communicate()
print err
print out

a.py

import signal
import time
import os
def signalHandler ( signum , address ):
    print "IN signal handler"

print os.getpid();  
signal.signal(signal.SIGTERM,signalHandler)
signal.signal(signal.SIGABRT,signalHandler)
signal.signal(signal.SIGBREAK,signalHandler)
signal.signal(signal.SIGFPE,signalHandler)
signal.signal(signal.SIGILL,signalHandler)
signal.signal(signal.SIGINT,signalHandler)
signal.signal(signal.SIGSEGV,signalHandler)
signal.signal(signal.CTRL_C_EVENT,signalHandler)
print "Going in sleep a.py"
time.sleep(10)

我正在执行signal.py,它在内部调用a.py. Signal.py是发送者,a.py是接收者。 我尝试过使用SIGTERM,SIGABRT,SIGFPE等其他信号,但无法在a.py中捕获它们。

0 个答案:

没有答案