остановка программы с терминала, если она выполняется более x секунд

поэтому, набрав

/.blabla

, я запускаю программу blabla. Есть ли способ из терминала остановить (т. Е. Эквивалент Ctrl + C), Blabla работает более x секунд? (Я пытаюсь протестировать программу, источник которой у меня отсутствует на разных случайных входах, и эта вещь иногда застревает).

2
задан 5 November 2010 в 12:24

3 ответа

Просто используйте тайм-аут из пакета coreutils в репозиториях:

Установка: sudo apt-get install coreutils

Использование: timeout [-signal] time command

0
ответ дан 5 November 2010 в 12:24

Вот сообщение в блоге, подробно описывающее несколько способов сделать это: http://www.cyberciti.biz/faq/shell-scripting-run-command-under-alarmclock/

0
ответ дан 5 November 2010 в 12:24

Вы можете использовать sleep для достижения этой цели:

./blabla &
pid=$!
(sleep TIMEOUT; kill $pid 2>/dev/null) &
sleeppid=$!
wait $pid
kill -HUP $sleeppid 2>/dev/null
0
ответ дан 5 November 2010 в 12:24

Другие вопросы по тегам:

Похожие вопросы: