0
所有人。 我寫了一個bash腳本來監視cpu,內存和網絡信息。一切都很好,CPU和內存部分。但是當涉及網絡部分時,事情變得有趣。 我使用「ifstat」來監視網絡。 「ifstat」是一個可以連續在屏幕上打印網絡IO的塊線程。我的bash腳本是象下面這樣:! #/斌/慶典當主進程被終止時,bash子進程不會被終止
#ignore other less important codes
......
ifstat > network.info &
while true
do
...
done
我用 慶典xx.sh 運行它,並使用Ctrl + C將其殺死。奇怪的是,雖然這個bash進程已經被殺死,但是ifstat進程仍然在後臺運行。我使用 ps -e | grep ifstat 檢查出來。它總是在那裏我手動殺死它。
在我看來,ifstat進程是xx.sh的子進程,所以我期望它在殺死xx.sh時被殺死。但顯然它不是! 有人可以告訴我爲什麼? 當我殺死xx.sh過程時如何自動殺死它?
該解決方案非常棒!謝謝!但還有一個問題是,爲什麼我殺了shell進程,它不會自動殺死ifst進程,因爲ifst進程是shell進程的子進程(我認爲)。 – Yoyoslx
是的,這就是爲什麼。 – Jasen