我正在用多個進程編寫一個守護進程。一旦第一個進程完成,那麼它停止並需要mannual中斷SIGINT(CTRL + C)。 運行此下一個腳本之後。如何將SIGINT發送到shell腳本?
過程1成功結束。
如何添加SIGINT以進一步自動進行?
這個問題可能是微不足道的,但只能找到我們如何捕獲腳本中的給定信號,但是如何在完成任務後添加一個?
我正在用多個進程編寫一個守護進程。一旦第一個進程完成,那麼它停止並需要mannual中斷SIGINT(CTRL + C)。 運行此下一個腳本之後。如何將SIGINT發送到shell腳本?
過程1成功結束。
如何添加SIGINT以進一步自動進行?
這個問題可能是微不足道的,但只能找到我們如何捕獲腳本中的給定信號,但是如何在完成任務後添加一個?
您可以使用命令kill -TERM -$$
來終止當前的bash shell及其所有子項。
編輯:
如果,例如,您正在啓動過程中,如:
(process1 ; kill -TERM -$$) &
(process2 ; kill -TERM -$$) &
(process3 ; kill -TERM -$$) &
process4 ; kill -TERM -$$
:
process1 &
process2 &
process3 &
process4
要這樣,當任何進程結束時殺死所有你可以用別人修改
使用'kill -2 $ pid'發送'SIGINT' – anubhava
@anubhava AFAIK信號編號不可移植,但'kill -INT $ pid'也可以。 – melpomene
也許http://stackoverflow.com/questions/5789642/how-to-send-controlc-from-a-bash-script是一個更好的重複。 – tripleee