2016-09-25 77 views
1

我正在用多個進程編寫一個守護進程。一旦第一個進程完成,那麼它停止並需要mannual中斷SIGINT(CTRL + C)。 運行此下一個腳本之後。如何將SIGINT發送到shell腳本?

過程1成功結束。

如何添加SIGINT以進一步自動進行?

這個問題可能是微不足道的,但只能找到我們如何捕獲腳本中的給定信號,但是如何在完成任務後添加一個?

+1

使用'kill -2 $ pid'發送'SIGINT' – anubhava

+6

@anubhava AFAIK信號編號不可移植,但'kill -INT $ pid'也可以。 – melpomene

+1

也許http://stackoverflow.com/questions/5789642/how-to-send-controlc-from-a-bash-script是一個更好的重複。 – tripleee

回答

0

您可以使用命令kill -TERM -$$來終止當前的bash shell及其所有子項。

編輯:

如果,例如,您正在啓動過程中,如:

(process1 ; kill -TERM -$$) & 
(process2 ; kill -TERM -$$) & 
(process3 ; kill -TERM -$$) & 
process4 ; kill -TERM -$$ 

process1 & 
process2 & 
process3 & 
process4 

要這樣,當任何進程結束時殺死所有你可以用別人修改

+0

這似乎回答了一個與此處提問不同的問題。 – tripleee

+0

@tripleee,他的問題不是很清楚,但我已經更新了我的答案,提供了有關我正在解決的確切情況的更多細節。 – ccarton