Linux命令——timeout 命令简介
运行指定的命令,如果在指定时间后仍在运行,则杀死该进程。用来控制程序运行的时间。
使用方法
timeout [选项] 数字[后缀] 命令 [参数]...1
后缀”s”代表秒(默认值),”m”代表分,”h”代表小时,”d”代表天。
选项详解
长选项必须使用的参数对于短选项时也是必需使用的。 -s, --signal=信号 指定在超时时发送的信号。信号可以是类似"HUP"的信号名或是信号数。 查看"kill -l"以获得信号列表
--help 显示此帮助信息并退出 --version 显示版本信息并退出
如果程序超时则退出状态数为124,否则返回程序退出状态。
echo $?
#失败时返回124
如果没有指定信号则默认为TERM 信号。TERM 信号在进程没有捕获此信号时杀死进程。 对于另一些进程可能需要使用KILL (9)信号,当然此信号不能被捕获。12345678910
示例
commond 不需要加引号,否则会报错
很有效的解决开机脚本等待时间过长问题
#命令中用法
##command命令在10秒内结束,则结束,超过10秒,将被强行kill
timeout 10 command1
timeout 5 mount -t nfs nfs01:/nfsdata/blog /usr/local/nginx/html/blog/wp-content/
#默认是秒 也可是 5m 5h 代表5分钟 5小时
#脚本中用法
inotifywait -mrq --timefmt '%Y/%m/%d %H:%M ' --format '%T%w%f' -e create,delete,modify,close_write $Path/ \
|while read line
do
cd /server
timeout 5
rsync -avz $Path/ rsync_backup@$Ip::server --password-file=/etc/rsync.pp
done