2
好吧,我有一個腳本中的usr1信號處理程序。通過從外部向我的腳本發送一個SIGUSR1,我的處理程序完成它的工作,但信號也傳播給我通過Popen創建的孩子。我怎樣才能做到這一點?蟒蛇子進程避免孩子的信號處理
好吧,我有一個腳本中的usr1信號處理程序。通過從外部向我的腳本發送一個SIGUSR1,我的處理程序完成它的工作,但信號也傳播給我通過Popen創建的孩子。我怎樣才能做到這一點?蟒蛇子進程避免孩子的信號處理
的rsync
manual page說,退出代碼20級是指:
Received SIGUSR1 or SIGINT
所以,如果你與kill
殺死它(不kill -15
你說你有時會使用),那麼它將與此退出代碼太死。
默認情況下,信號不「傳播」;你自己接力。 – phihag
@phihag nope,我只是在腳本X中創建一個子進程.Popen。然後我從外部發送一個SIGUSR1,然後在腳本中捕獲它。當時我內心的劇本因爲寄給他我從未給他的SIGUSR1而哭泣。 – ScotchAndSoda
@Method [這裏是一個演示](https://gist.github.com/3820337)在我的系統輸出'父:SIGUSR1抓住'(+ PID)。你能重現那種行爲嗎?如果沒有,你使用的是什麼Python解釋器,以及什麼操作系統?如果是這樣,你的腳本與演示腳本有什麼不同? – phihag