2012-10-02 109 views
2

好吧,我有一个脚本中的usr1信号处理程序。通过从外部向我的脚本发送一个SIGUSR1,我的处理程序完成它的工作,但信号也传播给我通过Popen创建的孩子。我怎样才能做到这一点?蟒蛇子进程避免孩子的信号处理

+0

默认情况下,信号不“传播”;你自己接力。 – phihag

+0

@phihag nope,我只是在脚本X中创建一个子进程.Popen。然后我从外部发送一个SIGUSR1,然后在脚本中捕获它。当时我内心的剧本因为寄给他我从未给他的SIGUSR1而哭泣。 – ScotchAndSoda

+0

@Method [这里是一个演示](https://gist.github.com/3820337)在我的系统输出'父:SIGUSR1抓住'(+ PID)。你能重现那种行为吗?如果没有,你使用的是什么Python解释器,以及什么操作系统?如果是这样,你的脚本与演示脚本有什么不同? – phihag

回答

0

rsyncmanual page说,退出代码20级是指:

Received SIGUSR1 or SIGINT 

所以,如果你与kill杀死它(不kill -15你说你有时会使用),那么它将与此退出代码太死。