2015-02-23 107 views
0

我有一段腳本,在一段時間後執行一個不能停止的命令,除非你終止它。如何停止命令並繼續我的腳本?Bash腳本終止一個命令並繼續

假設我運行了apt-get update,我想在N段時間內停止它,然後繼續我的腳本。

+0

你可以顯示你的腳本嗎? – anubhava 2015-02-23 12:37:16

+0

你看過'timeout'命令嗎? – pfnuesel 2015-02-23 12:41:39

+0

回聲-e 「進入監控卡ID C:\」 讀monitorcard 回聲 「顯示器ID是:$ monitorcard」 回聲 「開始掃描WPS的」 EVAL '洗-i $ monitorcard' 不,我沒有yey ..但我會 – Ariox 2015-02-23 12:44:21

回答

0

這是一個sh腳本,使使用「暫停」命令的示例:

運行「睡眠30」,超時10秒,然後殺「術語」,等待3秒,然後殺死 - 9

TIMEOUT_TO_SIGNAL=10 
SIGNAL_AFTER_TIMEOUT=TERM 
WAIT_FOR_KILL="3s" 
COMMAND_TO_EXEC="sleep 30" 

echo "Run \"$COMMAND_TO_EXEC\", timeout on $TIMEOUT_TO_SIGNAL seconds, then kill \"$SIGNAL_AFTER_TIMEOUT\", wait $WAIT_FOR_KILL, then kill -9" 
timeout --signal=$SIGNAL_AFTER_TIMEOUT --kill-after=$WAIT_FOR_KILL $TIMEOUT_TO_SIGNAL $COMMAND_TO_EXEC 

if [ $? -eq 124 ] 
then 
    echo "The command $COMMAND_TO_EXEC timed out" 
else 
    echo "The command $COMMAND_TO_EXEC executed without timeout" 
fi