2016-05-18 134 views
0

bash腳本demo.sh殺bash腳本與等待命令

#!/bin/bash ./prog1 & ./prog2 & wait

使用timeout -s 9 5m demo.sh運行該腳本。

腳本demo.sh以前沒有&wait。我想知道當超時發生時timeout是否會殺死prog1和prog2。我如何確保所有子流程都會被殺死?

回答

0

當你殺死由 demo.sh開始的shell進程(除非你做了類似disown $PID的事情)時,分叉的作業將被殺死。

可以確保這種情況與kill -0

./prog1 & 
echo P1=$! 
./prog2 & 
echo P2=$! 

然後你可以kill -0 ${PID1}kill -0 ${PID2}並確保兩個 命令,退出狀態1,這意味着「找不到過程」

返回