「服務網路重新啟動」逾時

「服務網路重新啟動」逾時

我有一個在 fedora 22 上運行的腳本,我正在其中重新啟動服務網絡,作為故障排除呼叫的一部分service network restart。我想檢查該命令是否執行時間太長。如果花費太長時間,我想輸出一條訊息「重新啟動網路服務時出錯」。否則我想繼續劇本。

答案1

您可以使用timeoutcommand 在給定的逾時時間內執行命令或腳本。與此類似的東西:

timeout 10m command 

它會等待命令在 10 分鐘內完成,否則會終止該命令並以狀態 124 退出timeout。請參閱此處以了解更多資訊:超時線上說明頁。

如果您不想終止長命令,請執行以下操作:

(( sleep $TIMEOUT; echo "command took so long!" ) & exec $COMMAND )

超時時,這將列印訊息,但命令繼續執行。

答案2

如果您不關心編輯原始系統腳本,則可以在腳本內建立一個類似的函數

timeoutf(){
    #If hangs 1 minute, dies..
    sleep 1m 
    kill $PPID  
}

timeoutf&

相關內容