用wait命令杀死bash脚本

时间:2016-05-18 17:09:09

标签: shell timeout wait

bash脚本demo.sh

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

使用timeout -s 9 5m demo.sh运行脚本。

脚本demo.sh曾经没有&wait。我想知道timeout是否会在超时发生时杀死prog1和prog2。如何确保所有子进程都被杀死?

1 个答案:

答案 0 :(得分:0)

当您终止启动的shell进程时,分叉的作业将被终止 demo.sh(除非您执行disown $PID之类的操作)。

您可以使用kill -0确认这种情况:

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

然后您可以kill -0 ${PID1}kill -0 ${PID2}并确保两者都有 命令以退出状态1返回,这意味着“无法找到进程”