shell 中给命令设置超时时间
在我们写 shell 脚本的时候,有时候想给一个命令设置一个超时时间,当命令执行了多长时间还没有执行完就强制终止;我们可以采用如下方式
timeout 3 sleep 30
当 sleep 执行 3 秒的时候就会终止。
timeout 指令介绍
运行指定的命令,如果在指定时间后仍在运行,则杀死该进程。用来控制程序运行的时间。
使用方法
timeout [选项] 数字[后缀] 命令 [参数]...
后缀”s”代表秒(默认值),”m”代表分,”h”代表小时,”d”代表天。
选项介绍
长选项必须使用的参数对于短选项时也是必需使用的。
-s, --signal=信号
指定在超时时发送的信号。信号可以是类似"HUP"的信号名或是信号数。
查看"kill -l"以获得信号列表
--help 显示此帮助信息并退出
--version 显示版本信息并退出
如果程序超时则退出状态数为124,否则返回程序退出状态。
如果没有指定信号则默认为TERM 信号。TERM 信号在进程没有捕获此信号时杀死进程。
对于另一些进程可能需要使用KILL (9)信号,当然此信号不能被捕获。