Bash脚本终止命令并继续

时间:2015-02-23 12:32:24

标签: linux bash scripting command terminate

我有一个脚本,经过一段时间后执行一个无法停止的命令,除非你终止它。如何停止命令并继续我的脚本?

假设我运行apt-get update并且我想在N段时间内停止它,然后继续我的脚本。

1 个答案:

答案 0 :(得分:0)

这是一个使用" timeout"的脚本示例。命令:

运行"睡眠30",超时10秒,然后杀死" TERM",等待3s,然后杀死-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