как использовать systemD для перезапуска службы при сбое?

на моем сервере я использую elasticSearch, который регулярно спускается, и результатом является ошибка 500 для моих пользователей.

Я понял, что systemD теперь был ссылкой для управления службами. Меня это устраивает.

Как я могу использовать systemD для автоматического перезапуска службы эластичного поиска, когда она падает ? Я нашел способы перезапустить его, но не автоматически, без проверки, если он не работает.

3 ответов


если вы используете файл службы systemd для запуска службы, добавьте ниже строки в файл службы, откуда вы смотрите на свою службу

[Service]
Type=simple
ExecStart=here will be your service executable name
Restart=always    
RestartSec=0
  • Restart=

    настраивает, должна ли Служба быть перезапущена, когда процесс службы завершается, убивается или достигается тайм-аут. Принимает одно из следующих значений: no, on-success, on-failure, on-abnormal, on-watchdog, on-abort или always. Если установлено значение no (the неисполнение.)

  • RestartSec=

    настраивает время сна перед перезапуском службы (как настроено с Restart=). Принимает значение unit-less в секундах.

эти два варианта должны быть под [Service] тег в файл службы.


Я использовал монит monit для этого. сообщение в askfedoraproject подсказывает мне, что это еще хороший способ контролировать процессы и автоматически перезапустить их.

Он обеспечивает хорошую гранулированную конфигурацию функций мониторинга, как решить, если процесс не удался, и действия, которые необходимо предпринять, чтобы восстановить его.


Systemctl-System and Service manager for linux systems

основы о systemd в: Особенности: 1.Параллельный запуск системной службы во время загрузки 2.По требованию активация демонов 3.Логика управления службой на основе Dependecy

* limited support at runlevel
* panic is not support panic command(systemctl no custom commands)
* systemctl can only communicate with services which are started by systemd
* sysd stop only running services
* system services don't inherit any context like HOME or PATH variable
* All services subject to default timeout of 5 minutes can be configured.These prevents from system to freeze in case of some application stop to respond.

блоки Systemd: обслуживание, путь, держатель, снимок, обмен, отметчик времени, прибор etc тип юнита расширение файла Описание: Сервисный модуль .услуга Системная служба. Целевой блок .цель Группа единиц systemd. Автомонтажный агрегат .automount Папка точка автоматического монтажа системы. Устройство .устройство Файл устройства, распознанный ядром. Блок крепление .монтировать Точка монтирования файловой системы. Путевой узел .путь Файл или каталог в файловой системе. Объемный блок .масштаб Внешний процесс. Блок срез .ломтик Группа иерархически организованных подразделений, управляющих системными процессами. Блок снимка .снимок Сохраненное состояние диспетчера systemd. Блок розетка .разъем Межпроцессный коммуникационный сокет. Своп-блок .менять Устройство подкачки или файл подкачки. Таймер блок .таймер Таймер с помощью systemd.

файл устройства: файл /etc/systemd в/системы

файл Conf: / etc/systemd / system.conf

Systemd обеспечивает много functionallity в основном вы можете контролировать все ресурсы системы linux, что дает вам много функциональности.В этой статье мы сосредоточимся на управлении системным сервисом.

для более подробной информации: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/chap-managing_services_with_systemd

УПРАВЛЕНИЕ СИСТЕМНЫМИ СЛУЖБАМИ: systemctl Описание: имя начала systemctl.услуга Запускает службу. systemctl Stop имя.услуга Останавливает службу. systemctl перезагрузите имя.услуга Перезапускает службу. systemctl try-имя перезапуска.услуга Перезапускает службу, только если она запущена. systemctl перезагрузки имя.услуга Перезарядит конфигурация. systemctl название статуса.услуга systemctl-активное имя.услуга Проверяет, запущена ли служба. systemctl список-единицы --тип службы --все Отображает состояние всех служб. systemctl Описание: systemctl включить имя.услуга Включает службу. systemctl отключить имя.услуга Отключает службу. systemctl название статуса.услуга имя systemctl включено.услуга Проверяет, включена ли служба. systemctl list-unit-files --тип службы Перечисляет все службы и проверяет, являются ли они включен. список systemctl-зависимости-после Перечисляет службы, которые должны запускаться до указанного устройства. список systemctl-зависимости --before Перечисляет службы, которые должны запускаться после указанного блока.