Systemd-Dienst/Timer – Oneshot-Dienst mit Timer wird mehrmals ausgeführt und schlägt mit „Start-Limit-Hit“ fehl.

Systemd-Dienst/Timer – Oneshot-Dienst mit Timer wird mehrmals ausgeführt und schlägt mit „Start-Limit-Hit“ fehl.

Ich möchte alle 5 Minuten einen Befehl (unison) als systemd.service über eine systemd.timer-Einheit starten. Die Datei „.service“ allein läuft einwandfrei. Wenn sie jedoch von der Timer-Einheit gestartet wird, wird sie mehrmals ausgeführt und stoppt mit diesen Fehlern: Start request repeated too quickly.und Failed with result 'start-limit-hit'. Aber warum?

Ich starte den Timerdienst so: systemctl --user start service.timer.

Die Dateien befinden sich in: $HOME/.config/systemd/user/.

Synchronisierungsdienst

[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

Synchronisierungstimer

[Unit]
Description=Timer for Sync Service

[Timer]
OnCalendar=*-*-* *:0/5:*
AccuracySec=5s

[Install]
WantedBy=timers.target

Der Unison-Befehl synchronisiert sich über das Netzwerk per SSH mit einem Server mit einer passwortgeschützten Schlüsseldatei. Eine ssh-agentInstanz wird beim Benutzer ausgeführt. Deshalb muss ich eine Login-Shell verwenden: zsh -l -c "...".

Antwort1

Fürs Protokoll: OnCalendar=*-*-* *:0/5:*ist schlichtweg falsch. OnCalendar=*-*-* *:0/5:00Unterbindet die Mehrfachausführung.

verwandte Informationen