timeout命令

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    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章