Python 2.7 如何在python中处理SIGUSR1
12500开始等待。。。[1250112502]Python 2.7 如何在python中处理SIGUSR1,python-2.7,signals,Python 2.7,Signals,12500开始等待。。。[1250112502] 当我使用'kill-usr212501'时,我得到了'onsig2->12',两个子进程是活动的。我明白这一点。 但是当我使用“kill-usr112500”时,我得到了“onsig1->10”,但是父进程将死亡。 我不明白为什么。对不起,我忘了将try块包装到while中 import os import signal from time import sleep child=[] for i in range(2):
当我使用'kill-usr212501'时,我得到了'onsig2->12',两个子进程是活动的。我明白这一点。
但是当我使用“kill-usr112500”时,我得到了“onsig1->10”,但是父进程将死亡。
我不明白为什么。对不起,我忘了将try块包装到while中
import os
import signal
from time import sleep
child=[]
for i in range(2):
pid = os.fork()
if pid == 0:
child=[]
print 'child start,pid',os.getpid()
break
else:
child.append(pid)
if(child):
def onsig1(a,b):
print 'onsig1->',a
signal.signal(signal.SIGCHLD,onsig1)
signal.signal(signal.SIGUSR1,onsig1)
try:
print os.getpid(),' start wait...',str(child)
while True:
pid, stat = os.wait()
print '--->',pid,stat
except Exception as e:
print 'error -->',str(e)
else:
def onsig2(a,b):
print 'onsig2->',a
signal.signal(signal.SIGUSR2,onsig2)
while True:
sleep(10)
print os.getpid(),'say ...'
你有没有从
错误-->
得到过输出?@MisterMiyagi在'kill-USR1 12500'时得到了“错误-->[Errno 4]中断的系统调用”
while True:
try:
print os.getpid(),' start wait...',str(child)
while True:
pid, stat = os.wait()
print '--->',pid,stat
except Exception as e:
print 'error -->',str(e)