shell的timeout命令怎么用

shell的timeout命令怎么用,第1张

timeout

相关命令:暂无相关命令

[root@localhost zhangy]# timeout --help

用法:timeout [选项] 数字[后缀] 命令 [参数]...

 或:timeout [选项]

运行指定命令,如果在指定时间后仍在运行则杀死该进程

后缀"s"代表秒(默认值),"m"代表分,"h"代表小时,"d"代表天。

长选项必须使用的参数对于短选项时也是必需使用的。

-s, --signal=信号

指定在超时时发送的信号。信号可以是类似"HUP"的信号名或是信号数。

查看"kill -l"以获得信号列表

--help显示此帮助信息并退出

--version显示版本信息并退出

如果程序超时则退出状态数为124,否则返回程序退出状态。

如果没有指定信号则默认为TERM 信号。TERM 信号在进程没有捕获此信号时杀死进程。

对于另一些进程可能需要使用KILL (9)信号,当然此信号不能被捕获。

判断进程是否存在。示例:

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}')

执行超时那就说明环境出问题,比如网络环境不通了,脚本计算任务过多。那只能是有问题查问题了。你也可以对脚本的执行加上监控,比如使用timeout命令限制执行时间,如到达一定的时间后没执行完,然后就发消息通知你。对于超时的任务可以尝试多次等,或者改进代码。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8068371.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存