Рейтинг:0

Как перезапустить веб-приложение через SystemD, если оно не отвечает?

флаг in

При использовании Supervisor доступно несколько плагинов, которые могут перезапустить приложение, если оно использует слишком много памяти (-> утечка памяти, например, в некоторых Java-инструментах) или если приложение не отвечает (хотя официально оно не аварийно завершено) . Я ищу хороший способ сделать это и на уровне SystemD. Есть ли кто-нибудь, кто может дать SystemD команду, чтобы распознать запущенное приложение, все еще работающее? Возможно, похоже на опцию ExecStartPost.

Рейтинг:0
флаг us

Вы можете использовать сторожевой таймер для сервисов:

Секунда сторожевого таймера=

Настраивает тайм-аут сторожевого таймера для службы. Сторожевой таймер активируется после завершения запуска. Служба должна регулярно вызывать sd_notify(3) с параметром "WATCHDOG=1" (т. е. "поддерживающий пинг"). Если время между двумя такими вызовами превышает настроенное время, то служба переходит в состояние сбоя и завершается сигналом SIGABRT (или сигналом, указанным WatchdogSignal=). Установив для Restart= значение «при сбое», «при сторожевом таймере», «ненормально» или «всегда», служба будет автоматически перезапущена. Настроенное здесь время будет передано исполняемому сервисному процессу в переменной окружения WATCHDOG_USEC=. Это позволяет демонам автоматически включать логику проверки активности, если для службы включена поддержка сторожевого таймера. Если используется этот параметр, необходимо установить NotifyAccess= (см. ниже), чтобы открыть доступ к сокету уведомлений, предоставляемому systemd. Если NotifyAccess= не установлен, он будет неявно установлен в main. По умолчанию 0, что отключает эту функцию. Служба может проверить, ожидает ли диспетчер службы уведомлений о проверке активности сторожевого таймера. Подробности смотрите в sd_watchdog_enabled(3). sd_event_set_watchdog(3) может использоваться для включения поддержки автоматических уведомлений сторожевого таймера.

вы можете найти много примеров в Интернете.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.