![Systemd Service/Timer — служба Oneshot с таймером выполняется несколько раз и завершается сбоем из-за «превышения начального лимита»](https://rvso.com/image/168797/Systemd%20Service%2FTimer%20%E2%80%94%20%D1%81%D0%BB%D1%83%D0%B6%D0%B1%D0%B0%20Oneshot%20%D1%81%20%D1%82%D0%B0%D0%B9%D0%BC%D0%B5%D1%80%D0%BE%D0%BC%20%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D1%8F%D0%B5%D1%82%D1%81%D1%8F%20%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE%20%D1%80%D0%B0%D0%B7%20%D0%B8%20%D0%B7%D0%B0%D0%B2%D0%B5%D1%80%D1%88%D0%B0%D0%B5%D1%82%D1%81%D1%8F%20%D1%81%D0%B1%D0%BE%D0%B5%D0%BC%20%D0%B8%D0%B7-%D0%B7%D0%B0%20%C2%AB%D0%BF%D1%80%D0%B5%D0%B2%D1%8B%D1%88%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%BD%D0%B0%D1%87%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%BB%D0%B8%D0%BC%D0%B8%D1%82%D0%B0%C2%BB.png)
Я хочу запускать команду (unison) каждые 5 минут как systemd.service через модуль systemd.timer. Файл '.service' сам по себе работает нормально. Однако когда он запускается модулем timer, он запускается несколько раз и останавливается с этими ошибками: Start request repeated too quickly.
и Failed with result 'start-limit-hit'
. Но почему?
Я запускаю службу таймера так: systemctl --user start service.timer
.
Файлы находятся в: $HOME/.config/systemd/user/
.
синхронизация.сервис
[Unit]
Description=Sync Service
[Service]
Type=oneshot
ExecStart=/bin/zsh -l -c "unison -batch %u"
ExecStartPost=/bin/zsh -l -c 'dunstify "sync ~"'
[Install]
WantedBy=graphical.target
синхрон.таймер
[Unit]
Description=Timer for Sync Service
[Timer]
OnCalendar=*-*-* *:0/5:*
AccuracySec=5s
[Install]
WantedBy=timers.target
Команда unison синхронизируется по сети с сервером через ssh с защищенным паролем ключевым файлом. ssh-agent
Экземпляр запущен пользователем. Вот почему мне приходится использовать оболочку входа: zsh -l -c "..."
.
решение1
Для справки: OnCalendar=*-*-* *:0/5:*
это просто неправильно. OnCalendar=*-*-* *:0/5:00
останавливает множественное выполнение.