![Systemd-Dienst/Timer – Oneshot-Dienst mit Timer wird mehrmals ausgeführt und schlägt mit „Start-Limit-Hit“ fehl.](https://rvso.com/image/168797/Systemd-Dienst%2FTimer%20%E2%80%93%20Oneshot-Dienst%20mit%20Timer%20wird%20mehrmals%20ausgef%C3%BChrt%20und%20schl%C3%A4gt%20mit%20%E2%80%9EStart-Limit-Hit%E2%80%9C%20fehl..png)
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-agent
Instanz 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:00
Unterbindet die Mehrfachausführung.