Systemd: автоматический перезапуск сервисов в Linux

Практические лайфхаки для разработчиков, DevOps и админов: Docker, Linux, Bash, Python, Golang, Ansible, логи и безопасность — только рабочие решения. Даем готовые команды, конфиги и приёмы диагностики, которые экономят часы и дни. Если нужно быстро настроить, отладить и обезопасить инфраструктуру — вы по адресу.

systemdперезапуск сервисовlinux

👁 Когда система управляет критичными сервисами или процессами, важно гарантировать их стабильность, особенно в продакшн-среде. Одним из способов это сделать является использование systemd для автоматического перезапуска сервисов в случае их сбоя.

📝 Пример настройки через systemd:

  • Создание юнита для сервиса:
    sudo nano /etc/systemd/system/my_service.service
  • Содержимое файла:
    Description=My Custom Service
    After=network.target
    
    [Service]
    ExecStart=/path/to/my/application
    Restart=always
    RestartSec=3
    TimeoutSec=30
    User=myuser
    Group=mygroup
    
    [Install]
    WantedBy=multi-user.target
  • Активирование и запуск сервиса:
    sudo systemctl daemon-reload
    sudo systemctl enable my_service.service
    sudo systemctl start my_service.service

📌 Как это работает:

  • ExecStart: Указывает команду или путь к исполнимому файлу, который запускает сервис.
  • Restart=always: Гарантирует, что сервис будет перезапущен, если он завершится с ошибкой или неожиданно завершится.
  • RestartSec=3: Время ожидания перед перезапуском сервиса.
  • TimeoutSec=30: Время, через которое сервис будет считаться неработающим, если не ответил вовремя.
  • WantedBy=multi-user.target: Указывает на уровень запуска, который используется для обычных многопользовательских систем.

❗️ Это решение позволяет обеспечивать бесперебойную работу критически важных сервисов, таких как веб-серверы, базы данных или брокеры сообщений, минимизируя время простоя.

tags: #linux #полезно #systemd

🧭 @recura_tech 🌐 VK 🌐 MAX

Скриншот в тёмной теме: пример systemd‑юнита my_service.service с содержимым и командами systemctl, виден логотип RECURA.
Пример systemd‑юнита и последовательность команд для перезапуска и активации сервиса.

Читайте так же