我想通过 systemd.timer 单元每 5 分钟启动一个命令(一致)作为 systemd.service 。仅“.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
确实停止了多次执行。