Привет, коллеги! Сегодня разберём, как автоматически перезапускать сервис, если он вдруг упал. Это полезно для критичных приложений, которые должны работать 24/7.
📌 Метод 1: systemd (современный способ)
Если ваш сервис управляется
systemd, настройте автоматический рестарт: 1️⃣ Открываем юнит-файл сервиса:
sudo nano /etc/systemd/system/имя_сервиса.service
2️⃣ Добавляем или редактируем секцию
[Service]:
[Service]
Restart=always
RestartSec=5
🔹
Restart=always – сервис перезапускается при любой ошибке 🔹
RestartSec=5 – задержка 5 секунд перед рестартом 3️⃣ Применяем изменения:
sudo systemctl daemon-reexec
sudo systemctl restart имя_сервиса
📌 Метод 2: Monit (для расширенного контроля)
Если нужен мониторинг с уведомлениями, используем Monit:
1️⃣ Устанавливаем:
sudo apt install monit # Debian/Ubuntu
sudo yum install monit # CentOS
2️⃣ Добавляем правило для сервиса:
sudo nano /etc/monitrc
Пример конфига:
check process nginx with pidfile /run/nginx.pid
start program = "/bin/systemctl start nginx"
stop program = "/bin/systemctl stop nginx"
if 5 restarts within 5 cycles then unmonitor
3️⃣ Перезапускаем Monit:
sudo systemctl restart monit
📌 Метод 3: crontab (самый простой способ)
Если сервис падает редко, можно просто проверять его раз в минуту:
* * * * * pgrep -x nginx > /dev/null || systemctl restart nginx
⚡ Вывод:
systemd – лучший вариант, Monit подходит для расширенного мониторинга, а cron – для простых случаев. #Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin