Автоматический перезапуск процесса при сбое

Автоматический перезапуск процесса при сбое

У меня есть процесс сервера Java, который запускает собственный код, и всегда есть вероятность сбоя всего процесса из-за проблемы в собственном коде. Есть ли какой-либо механизм, предлагаемый операционными системами *nix, с помощью которого я могу заставить процесс заново запустить себя, когда он существует ненормально (статус выхода != 0)?

Существует ли какой-либо инструмент/утилита, способный автоматизировать эту задачу для любого процесса, одновременно обеспечивая определенный уровень контроля/конфигурации?

решение1

Есть несколько вариантов — вы всегда можете оформить это в виде короткого скрипта оболочки, например, такого:

#!/bin/sh

RC=1
while [ $RC -ne 0 ]; do
   ./my-java-app
   RC=$?
done

Далеко не элегантно, но может сгодиться.

решение2

То, что вы ищете, обычно называется мониторингом процесса илинадзор за процессом. Существует множество инструментов, которые делают это, как правило, как часть различного набора функций.Выскочкавсе чаще используется для системных служб в мире Linux.Монитэто первое, что я бы попробовал сделать для программы, запущенной не от root, но есть много альтернатив.

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