Остановка программы с терминала, если она выполняется более x секунд
Так , набрав
/.blabla
Запускаю программу блабла. Есть ли способ, из терминала, остановить (т. Е. Эквивалент Ctrl+ C), Blabla работает более х секунд? (Я пытаюсь протестировать программу, источник которой у меня отсутствует на разных случайных входах, и эта вещь иногда застревает).
3 ответа
Решение
Просто используйте тайм-аут из пакета coreutils в репозиториях:
Монтаж: sudo apt-get install coreutils
Использование: timeout [-signal] time command
Вот запись в блоге, подробно описывающая несколько способов сделать это: http://www.cyberciti.biz/faq/shell-scripting-run-command-under-alarmclock/
Вы могли бы использовать sleep чтобы сделать это:
./blabla &
pid=$!
(sleep TIMEOUT; kill $pid 2>/dev/null) &
sleeppid=$!
wait $pid
kill -HUP $sleeppid 2>/dev/null