Если и как можно Terminal
заставить приложение работать в течение 30 секунд, после чего его принудительно закроют и отобразят логи этого процесса?
Если и как можно Terminal
заставить приложение работать в течение 30 секунд, после чего его принудительно закроют и отобразят логи этого процесса?
Ответы:
Возможно, вы захотите использовать команду timeout .
timeout -k 10s 30s command
который будет запускать команду в течение 30 секунд и убивать ее через 10 секунд, если она все еще выполняется. - Проверьте man-страницу для большего количества вариантов.
watch
кажется мне очень интересной командой. Может пригодиться ...
Вот два способа (но timeout
команда, предложенная mcantsin , вероятно, лучше):
Запустите команду в фоновом режиме, таким образом, ее PID будет сохранен, $!
и вы можете использовать его, чтобы убить ее через указанное время:
command &
sleep 30 && kill $!
Запустите команду и используйте pkill
или, killall
чтобы убить ее. ВНИМАНИЕ: Предполагается, что выполняется только одна команда с таким именем, я использую firefox
в качестве примера:
firefox &
sleep 30 && pkill firefox
Я понятия не имею, что вы подразумеваете под «журналами этого процесса», но стандартная ошибка процесса может быть сохранена в файл с помощью command 2> logfile.txt
.