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


