2015-02-23 2 views
0

У меня есть скрипт, который через некоторое время выполняет команду, которая не может остановиться, если вы ее не завершите. Как остановить команду и продолжить мой скрипт?Bash Script Завершить команду и продолжить

Предположим, я запустил apt-get update, и я хочу остановить его в течение N периода времени, а затем продолжить мой сценарий.

+0

Можете ли вы показать свой сценарий? – anubhava

+0

Вы посмотрели команду 'timeout'? – pfnuesel

+0

эхо -e "Enter монитор карты ID: \ с" чтения monitorcard эхо "Monitor идентификатор: $ monitorcard" эхо "Начиная сканирование Для документов WP" Eval 'мыть -i $ monitorcard' Нет я не yey .. но я буду – Ariox

ответ

0

Это пример ш сценария, которые делают использование команды «тайм-аут», чтобы:

Run «сна 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