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)信號,當然此信號不能被捕獲。