TGViewer
Библиотека девопса | DevOps, SRE, Sysadmin Библиотека девопса | DevOps, SRE, Sysadmin @devopsslib · 10.4K subscribers
Post #4398 1.46K
🆘 Автоперезапуск сервисов скриптом

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

С этим поможет скрипт на Python:
import subprocess

SERVICE_NAME = "nginx"

def restart_service():
try:
status = subprocess.run(
["systemctl", "is-active", SERVICE_NAME],
capture_output=True,
text=True,
)

if "inactive" in status.stdout or "failed" in status.stdout:
print(f"{SERVICE_NAME} is down! Restarting...")
subprocess.run(["systemctl", "restart", SERVICE_NAME], check=True)
print(f"{SERVICE_NAME} restarted successfully.")
else:
print(f"{SERVICE_NAME} is running fine.")
except Exception as e:
print(f"Error checking service: {e}")

if __name__ == "__main__":
restart_service()


systemctl is-active возвращает состояние сервиса, по которому вы определяете, нужно ли его перезапускать.

При падении юнита скрипт выполняет systemctl restart nginx и сообщает в stdout об успешном запуске.

Как использовать на сервере

• Положите скрипт, например, в /usr/local/bin/check-nginx.py и сделайте его исполняемым.

• Добавьте cron‑задание * * * * * /usr/bin/python3 /usr/local/bin/check-nginx.py чтобы проверять сервис каждую минуту.

📍 Навигация: Вакансии • Задачи • Собесы

🐸 Библиотека devops'a

#root_prompt
  • ❤ 2
More from @devopsslib
  1. Sep 25, 2026🤖 ИИ-агенту теперь можно поставить задачу прямо в GitLab — и не расписывать каждый следую…
  2. Sep 25, 2026✨ Как настроить PostgreSQL для продакшен-нагрузок При переходе к продакшен-нагрузкам важно…
  3. Sep 18, 2026От исходного кода до процессора: разберись, как работает программа 💻 Стартует практически…
  4. Sep 15, 2026😭 Как не потратить недельный лимит AI-кодинга за три дня? Разберём на вебинаре, как трати…
  5. Sep 15, 2026👩‍💻 Bash-скрипт для мониторинга сервисов Полноценный мониторинг вроде Zabbix или Prometh…
  6. Sep 13, 2026🌸 Вселенная намекает: пора уже начать этот курс С 14 сентября цены в Proglib Academy выра…
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 →