1
基本上我想要一個bash腳本進程,在收到SIGINT
後,在退出之前終止它的所有子進程。我讀here使用的線沿線的東西:
trap "kill -TERM -$$ ; exit 1" INT QUIT
我也看過使用kill 0
:
trap "kill -TERM 0 ; exit 1" INT QUIT
它們之間有什麼區別?它們滿足以下要求(如果):
- 僅殺死自己及其子女(假設它是由終端命令啓動的頂級進程)。
- 它不會殺死任何其他進程或同一個shell腳本的實例(從單獨的終端命令運行:即在運行
./foo.sh &
然後./foo.sh
時,即使在同一個tty中也不應該殺死第二個進程) 。
你沒有回答我的問題的其餘部分。 – Matt
我什麼時候提過進程名或ps命令? – Matt