Если и как можно 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.