Systemd 服务/计时器 - 带计时器的一次性服务执行多次,并因“start-limit-hit”而失败

Systemd 服务/计时器 - 带计时器的一次性服务执行多次,并因“start-limit-hit”而失败

我想通过 systemd.timer 单元每 5 分钟以 systemd.service 形式启动一个命令 (unison)。单独使用 '.service' 文件可以正常运行。但是,当由计时器单元启动时,它会运行多次并停止并出现以下错误: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用户正在运行一个实例。这就是我必须使用登录 shell 的原因:zsh -l -c "..."

答案1

记录在案:OnCalendar=*-*-* *:0/5:*这完全是错误的。OnCalendar=*-*-* *:0/5:00确实停止了多次执行。

相关内容