
systemd.timer ユニットを介して、systemd.service として 5 分ごとにコマンド (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
インスタンスはユーザーによって実行されます。そのため、ログイン シェルを使用する必要がありますzsh -l -c "..."
。
答え1
記録のために:OnCalendar=*-*-* *:0/5:*
は単純に間違っています。OnCalendar=*-*-* *:0/5:00
複数の実行を停止します。