#ubuntu
Подскажите пожалуйста, запускаю с помощью cron несколько процессов в ubuntu server, делаю так (пример): 30 15 28 * * команда 1 30 16 28 * * команда 2 теперь задача, нужно задать в том же cron завершение процесса 1 к примеру в: 30 17 27 * * При этом процесс 2 должен работать дальше без остановки, PID процесса неизвестен, COMMAND у них одинаковый (например ffmpeg), то есть команда: 30 17 28 * * killall ffmpeg не подходит, так как она завершит оба процесса. Подскажите как решить эту проблемку, заранее спасибо!
Ответы
Ответ 1
Всем спасибо, решил вопрос запуском этих команд от разных юзеров, тогда команда killall ffmpeg убивает процесс только этого юзера, а остальные работают дальше.Ответ 2
можно отправлять процесс в background оператором &, а его идентификатор, сохранившийся в переменной $!, записывать в файл (с произвольным именем). откуда в нужный момент его можно прочитать и передать аргументом программе kill. пример: минуты1 * * * * команда & echo $! > /tmp/команда.pid минуты2 * * * * kill $(cat /tmp/команда.pid) &>/dev/null в случае, если команда — это последовательный запуск нескольких программ, связанных ;, && или ||, то, для правильной работы оператора &, такую составную команду надо «завернуть» в подоболочку (subshell) с помощью скобок: минуты1 * * * * (составная команда) & echo $! > /tmp/команда.pid
Комментариев нет:
Отправить комментарий