Я запускаю процесс, который иногда зависает, а иногда и вовсе вылетает. Я использовал Supervisor, чтобы он автоматически перезапускался при сбое. Однако если он завис, то остается замороженным, пока я не вернусь к компьютеру. Мне нужен инструмент, который перезапускал бы его при сбое, но также мог бы быть настроен на периодическое завершение и перезапуск, так что если он завис, то не будет оставаться замороженным дольше определенного периода времени.
Какой инструмент кто порекомендует?
Спасибо
решение1
Если хотите, можете использовать cron...
sudo crontab -e
* /5 * * * pkill -9 <your process name here> ; <your process name here>
Буду убивать и перезапускать его каждые 5 часов. Еще примеры...Примеры Cron
решение2
Я пробовал использовать супервизор изDAEMON Toolsс кронтабом:
Во-первых, я начну с
supervise /fullpath
и я использую этот crontab:
0 23 * * * svc -d /fullpath
2 23 * * * svc -k /fullpath
5 23 * * * svc -u /fullpath
Где полный путь — это каталог, содержащий файл с именем run, который запускает мой процесс. Сложность в том, что файл с именем должен заканчиваться на :
exec java ...
Обычно я запускаю приложение со скриптом, но если я помещаю этот скрипт в файл с именем run, то при выполнении svc он посылает сигнал скрипту, и процесс java продолжает работать. Я создал копию скрипта и изменил ее, чтобы она выводила вызов java со всеми параметрами, и скопировал это в файл с именем run.