2012-10-02 106 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你說你有時會使用),那麼它將與此退出代碼太死。