От: Перезапуск службы SystemD при сбое.[РЕШЕНО]

Автор Роман846, 27 декабря 2023, 10:56:42

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Роман846

Всем привет.

Написал скрипт который делает бэкапы БД по ночам. Скрипт сам по себе работает и делает бэкапы, но нужно его запускать в ночное время, по будням(для тестов поменял временные интервалы). Самое главное, что если скрипту не удалось создать бэкап, т.е. к примеру сеть пропала или служба ssh на удаленном сервере остановилась/зависла(там винда)), то выполнить повторные запуски в кол-ве 5 раз с интервалом в 30 минут. Если все равно не удалось, то запустить службу по таймеру на следующий день.

Я написал файл для службы, который запускает скрипт:
[Unit]
Description=1C database backup
Wants=1C_Back.timer
#Служба будет перезапущена 5 раз в течении 15 минут
StartLimitIntervalSec=900
StartLimitBurst=5


[Service]
Type=simple
ExecStart=/root/Backup_1C/1C_back.sh
#Перезапуск службы в случае неудачного запуска
Restart=on-failure
#Повторные запуски через 3 минуты
RestartSec=180

[Install]
WantedBy=multi-user.target

Так же написал файл таймера:
[Unit]
Description=1C Backup
Requires=1C_back.service

[Timer]
Unit=1C_back.service
#Запуск службы 1C_back.service каждые 20 минут
OnCalendar= *:0/20


[Install]
WantedBy=timers.target
Проблема в том, что когда приходит время(00:00:00), то запускается служба, которая запускает скрипт, но появляется ошибка(и это нормально, так как заняты файлы в расшаренном каталоге) и по идее служба должна выполниться 5 раз через каждые 3 минуты в течении 15 минут(для тестов), но вместо этого она продолжает попытки запуска, хотя я ограничил их 5-ю. Почему так происходит?

Вот что в логах: https://pastebin.com/D0WnBTep

В логах мы видим, что скрипт запускался аж 8 раз(и больше на самом деле) и превысил время в 15 минут. Почему по истечении 15 минут служба не остановила свое выполнение?
Версия Systemd = 241.

27 декабря 2023, 12:30:14
Решил проблему увеличением значения StartLimitIntervalSec=
Acer Aspire 5750G Debian 11 XFCE4