我想通过 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
实例。这就是为什么我必须使用登录外壳:zsh -l -c "..."
.