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不能时时刻刻检查着本命令是否已经结束了。

追答直接接着写下一个命令就行了。
如果检查到命令没有超时就结束了,会退出循环的。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com