Я установил Supervisor
пакет для Ubuntu, поскольку кто-то порекомендовал мне здесь, на serverfault, чтобы все мои процессы всегда работали.
Но после двух дней использования я увидел supervisorctl
команда: 4 процесса из 10 имеют фатальную ошибку и не работают.
...
sync FATAL Exited too quickly (process log may have details)
Я перезапустил все процессы, и они были успешно восстановлены. Так почему Supervisor
не сделал этого? Как настроить постоянное восстановление нарушенных процессов? Или что мне следует использовать, чтобы продолжать попытки восстановления процессов все время без какого-либо тайм-аута, даже если процесс все время будет давать сбой? Поскольку соединение с базой данных может быть восстановлено даже через 8 часов, он должен постоянно пытаться связаться с базой данных, не завершая работу.
Так почему же Supervisor этого не сделал?
Супервизор действительно пытался перезапустить ваши процессы, но они завершились слишком быстро, поэтому он отказался от выполнения заданного количества попыток.
Как настроить постоянное восстановление нарушенных процессов?
Вы можете увеличить startretries
значение по умолчанию 3 на большее число, чтобы руководитель не сдавался слишком быстро. Но сначала вы должны проверить журналы процесса, который вы пытаетесь перезапустить, и выяснить, почему он не смог запустить эти значения по умолчанию три раза.
Или что мне следует использовать, чтобы продолжать попытки восстановления процессов все время без какого-либо тайм-аута, даже если процесс все время будет давать сбой?
Не делайте этого - исправьте все, что мешает правильной работе процесса. Бездумный перезапуск никуда вас не приведет. Если вам действительно нужно такое поведение (что сомнительно), изучите службы systemd.