Сервис упал ночью, никто не заметил, а клиенты уже час не могут подключиться. Или упал в выходной, когда все спят. Вручную проверять сервисы каждый день — это неправильно. Нужно, чтобы система сама заметила, что что-то не так, и исправила.
Вот эта команда делает ровно это: проверяет, работает ли критичный сервис, и если нет — перезапускает его
systemctl is-active --quiet nginx || systemctl restart nginx
Это одна логическая цепочка. Давайте разберёмся:
systemctl is-active --quiet nginx — проверяет, работает ли сервис nginx прямо сейчас. Флаг --quiet говорит не выводить никакую информацию на экран, просто вернуть результат: работает или не работает.systemctl restart nginx — перезапускает сервис nginx. Остановит текущий процесс и запустит заново.Как использовать
Самый простой способ — добавить эту команду в cron, чтобы она проверяла сервис каждую минуту:
* * * * * /usr/bin/systemctl is-active --quiet nginx || /usr/bin/systemctl restart nginx
Если используете systemd, есть более продвинутый способ — встроенный Restart в конфиге сервиса:
[Unit]
Description=Nginx Web Server
[Service]
Type=notify
Restart=on-failure
RestartSec=5s
ExecStart=/usr/sbin/nginx
[Install]
WantedBy=multi-user.target
🔹 Математика для разработки AI-моделей
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
🐸 Библиотека devops'a
#root_prompt