在Windows中,我试图创建一个等待SIGINT信号的python进程。当它接收到SIGINT时,我希望它只是打印一条消息并等待SIGINT的另一个出现。所以我使用了信号处理程序。Windows中的信号处理
这是我的signal_receiver.py代码。
import signal, os, time
def handler(signum, frame):
print 'Yes , Received', signum
signal.signal(signal.SIGINT, handler)
print 'My process Id' , os.getpid()
while True:
print 'Waiting for signal'
time.sleep(10)
当这个进程在运行,我刚刚从其他Python过程中使用发送SIGINT这个procees,
os.kill(pid,SIGINT)
。
但是,当signal_receiver.py收到SIGINT时,它只是退出执行。但预期的行为是在处理函数内部打印消息并继续执行。
有人可以帮我解决这个问题。它在windows中是一个限制,因为在linux中同样工作正常。
在此先感谢。
Windows没有信号。 Python正在模拟它们,但可能不支持跨进程。考虑使用其中一种本地IPC方法。 – 2014-09-28 00:37:11
[根据此答案](http://stackoverflow.com/a/26053962/886887)Python不支持跨进程信号。 – 2014-09-28 00:44:27