TGViewer
BashTex | Linux BashTex | Linux @bash_tex · 2.51K subscribers
Post #509 923
Автоперезапуск сервиса только если он упал больше N раз

Иногда сервис падает один раз - это нормально. Но если он падает 10 раз за минуту, бесконечный Restart=always только усугубляет проблему.

Задача: перезапускать сервис только если он упал больше N раз за период.

1️⃣ Считаем падения через systemd. У systemd есть счетчик рестартов:


systemctl show nginx -p NRestarts


Вывод:


NRestarts=3


2️⃣ Простая логика в bash


SERVICE=nginx
LIMIT=5

restarts=$(systemctl show "$SERVICE" -p NRestarts --value)

if (( restarts >= LIMIT )); then
echo "Сервис падал $restarts раз — перезапуск"
systemctl restart "$SERVICE"
else
echo "Падений мало ($restarts) — не трогаем"
fi


▪️ Учитываем период времени

Счетчик накапливается с момента запуска systemd.
Чтобы учитывать последний час, можно смотреть journal:


journalctl -u nginx --since "1 hour ago" | grep -c "Started"


Или искать Main process exited.

BashTex 📱 #bash #utils
  • 👍 8
More from @bash_tex
  1. Oct 7, 2026/dev/tcp - сетевое соединение средствами Bash В Bash есть малоизвестная возможность работа…
  2. Oct 6, 2026Ephemeral ports - почему заканчиваются исходящие TCP-порты Когда приложение устанавливает…
  3. Oct 5, 2026name_to_handle_at() - как получить файловый объект без обычного пути В Linux обычно обраща…
  4. Oct 2, 2026madvise() - как процесс подсказывает ядру, как он собирается использовать память Когда про…
  5. Oct 1, 2026flock vs fcntl - почему две блокировки одного файла могут вести себя совершенно по-разному…
  6. Sep 30, 2026DEBUG trap - как Bash выполняет код перед каждой командой В Bash есть специальный DEBUG tr…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →