Linux
超時函式返回值
我在 debian 上使用超時功能來等待我的腳本 5 秒。效果很好,但我遇到的問題是我需要一個返回值。比如 1 表示超時,0 表示沒有超時 我該怎麼做?
看看我的程式碼:
timeout 5 /some/local/script/connect_script -x 'status' > output.txt # here i need the return of timeout
如您所見,我的 connect_script -x ‘status’ 將狀態作為字元串返回並將其列印到螢幕上(可能您看不到這個) 這個問題的背景是,如果伺服器(用於 connect_script)被凍結,則腳本什麼也不做. 這就是為什麼我需要超時。當它超時時,我想重新啟動伺服器。我可以這樣做,但我不知道如何查看它是否超時……
如果
timeout
超時,則以狀態 124退出;您可以檢查此項以確定腳本是否超時。
根據手冊(
man timeout
):概要超時
$$ OPTION $$數字$$ SUFFIX $$命令$$ ARG $$… $$ … $$如果命令超時,則以狀態 124 退出。否則,以 COMMAND 狀態退出
將此與退出狀態或返回值儲存在變數中的知識相結合
$?
,我們有…timeout 5 /some/local/script/connect_script -x 'status' > output.txt RETVAL=$?
然後,您可以根據 的值進行更多處理
$RETVAL
,如果超時將是 124,或者根據 的退出狀態進行一些其他值connect_script
。