5分ごとに、systemd.timerデバイスを介して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 "..."
。
答え1
記録のため:OnCalendar=*-*-* *:0/5:*
これは完全に間違っています。OnCalendar=*-*-* *:0/5:00
実行が数回停止しました。