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