Как запустить приложение на определенное время в оболочке

Если и как можно, в Terminal, заставить приложение работать в течение 30 секунд, прежде чем его принудительно закроют, и отобразит логи этого процесса?

12
задан 27 April 2014 в 20:44

2 ответа

Вы могли бы хотеть использовать тайм-аут команда.

timeout -k 10s 30s command

, который выполнит команду в течение многих 30-х и уничтожит ее после 10-х при тихом выполнении. - Проверяют страницу справочника на большее количество опций.

0
ответ дан 27 April 2014 в 20:44

Вот два пути (но timeout команда , предложенная mcantsin, вероятно, лучше):

  1. Запуск команда в фоновом режиме, тот способ, которым ее PID сохраняется в $! и можно использовать это для уничтожения его после требуемого времени:

    command &
    sleep 30 && kill $!
    
  2. Запуск команда и использование pkill или killall для уничтожения его. ОСТОРОЖНОСТЬ: Это предполагает, что только одна команда с тем именем работает, я использую firefox в качестве примера:

    firefox &
    sleep 30 && pkill firefox
    

я понятия не имею, что Вы подразумеваете "под журналами того процесса", но стандартная погрешность процесса может быть сохранена в файл с command 2> logfile.txt.

0
ответ дан 27 April 2014 в 20:44

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

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