Всем привет.
Написал скрипт который делает бэкапы БД по ночам. Скрипт сам по себе работает и делает бэкапы, но нужно его запускать в ночное время, по будням(для тестов поменял временные интервалы). Самое главное, что если скрипту не удалось создать бэкап, т.е. к примеру сеть пропала или служба 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 минут служба не остановила свое выполнение?