ℹ️ Иногда сервис может зависнуть или внезапно завершиться, и вам нужно автоматически перезапустить его. Вместо крон-задач или костыльных скриптов используйте systemd с мощными возможностями автоматического восстановления.
🔥 Пример: автоматический рестарт процесса с ограничением по времени
Допустим, у вас есть скрипт /usr/local/bin/my_script.sh, который должен работать постоянно, но может зависнуть. Вместо ручного контроля создадим systemd-юнит.
🖥 1. Создаём сервис:
sudo nano /etc/systemd/system/my_script.service
📑 2. Добавляем конфигурацию:
[Unit]
Description=Мой скрипт с автоматическим рестартом
After=network.target
[Service]
ExecStart=/usr/local/bin/my_script.sh
Restart=always
RestartSec=5
RuntimeMaxSec=600
KillMode=process
[Install]
WantedBy=multi-user.target
- ‣
Restart=always— перезапуск при любой ошибке - ‣
RestartSec=5— подождать 5 секунд перед рестартом - ‣
RuntimeMaxSec=600— убьёт процесс, если он работает больше 10 минут (предотвращает зависания) - ‣
KillMode=process— убивает только главный процесс, не трогая детей
✅ 3. Активируем сервис:
sudo systemctl daemon-reload
sudo systemctl enable my_script
sudo systemctl start my_script
✳️ Теперь ваш скрипт будет автоматически перезапускаться, даже если он зависнет!
tags: #полезно #linux
🧭 @recura_tech



