bash脚本demo.sh
#!/bin/bash
./prog1 &
./prog2 &
wait
使用timeout -s 9 5m demo.sh
运行脚本。
脚本demo.sh曾经没有&
和wait
。我想知道timeout
是否会在超时发生时杀死prog1和prog2。如何确保所有子进程都被杀死?
答案 0 :(得分:0)
当您终止启动的shell进程时,分叉的作业将被终止
demo.sh
(除非您执行disown $PID
之类的操作)。
您可以使用kill -0
确认这种情况:
./prog1 &
echo P1=$!
./prog2 &
echo P2=$!
然后您可以kill -0 ${PID1}
和kill -0 ${PID2}
并确保两者都有
命令以退出状态1
返回,这意味着“无法找到进程”