Что лучше использовать для перезагрузки сервера после завершения процесса?
Доброго времени суток.
Есть Linux-сервер (Debian), на котором работает определённый процесс. К примеру, запускается энкодер видеофайлов. Нужно перезагрузить сервер, чтобы запустилась новая версия ПО (runit / svdir). Не могу придумать ничего, кроме проверки pid / pidof процесса через cron, и рестарте системы, если этого нет.
Подскажите, пожалуйста, какие, более лучше, варианты вы знаете.
А разве shell-скрипты выполняются не последовательно? Пока команда конвертации не выполнится - скрипт дальше по идее не пойдет. В скрипте ставите сначала команду конвертации, а после нее - команду перезагрузки. В крайнем случае такое же можно сделать на питоне.
Смотрите. Знакомый попросил решить такую проблему и дал Вам доступ к серверу. Сказал, что у него там запущен процесс конвертирования изображений. Он долго работает и не ясно когда завершится. Он пробовал "поймать" завершение, но не получилось - когда он зашёл, был новозапущенный процесс.
Вы хорошо намекнули, можно изменить сценарий запуска процесса, добавить рестарт. В следующий раз в конце сервер перезагрузится. Это вариант, но может быть ещё что-то предложат. :)
А ну если уже запущен - то да, универсально - мониторить наличие процесса. Неуниверсально - вариантов много и они индивидуальны - проверять временные файлы, проверять итоговый файл и прочее...