Как контролировать процесс и планировать периодический перезапуск?

Как контролировать процесс и планировать периодический перезапуск?

Я запускаю процесс, который иногда зависает, а иногда и вовсе вылетает. Я использовал 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.

Связанный контент