linux的shell脚本中等待子程序执行超时
发布网友
发布时间:2022-04-23 22:34
我来回答
共1个回答
热心网友
时间:2022-05-08 05:07
判断进程是否存在。示例:
timer=20 #20s定时器
flag=1 #标识进程是否存在
while [ $timer -gt 0 ]
do
sleep 2
ps -aux | grep 进程名 | grep -v grep >/dev/null #查询进程
[ $? -ne 0 ] && flag=0 && break #进程不存在了就退出循环
let timer-=1
done
[ $flag -eq 1 ] && kill -9 $(ps -aux | awk '/ bash$/{print $1}')
追问还有一个要求,如果该命令没有超时就结束了,继续下一个命令。也就是说shell不能时时刻刻检查着本命令是否已经结束了。
追答直接接着写下一个命令就行了。
如果检查到命令没有超时就结束了,会退出循环的。