
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.