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