Chcę, aby systemd uruchomił skrypt i ponowił próbę maksymalnie 5 razy w odstępie 30 sekund. Przeczytanie podręcznika systemd.service i wyszukiwanie w Internecie nie dało żadnych oczywistych odpowiedzi.Jak skonfigurować usługę systemd, aby ponowić próbę 5 razy w cyklu 30 sekund.
Odpowiedz
Po wielu prób i błędów I rozwiązać mój problem i myślę, że warto delegowania tutaj ...
Aby umożliwić maksymalnie 5 prób rozdzielonych przez 30 sekund użyć następujących opcji w odpowiednim Systemd pliku serwisowego.
[Unit]
StartLimitInterval=200
StartLimitBurst=5
[Service]
Restart=always
RestartSec=30
To zadziałało u mnie dla usługi, która uruchamia skrypt przy użyciu "Typ = bezczynności". Należy zauważyć, że parametr "StartLimitInterval" musi być większy niż "RestartSec * StartLimitBurst", w przeciwnym razie usługa zostanie ponownie uruchomiona w nieskończoność.
Warto zauważyć, że - zgodnie z oficjalnymi systemowymi stronami podręcznika - RestartSec i Restart są częścią [System], podczas gdy StartLimitInterval i StartLimitBurst są częścią [Unit]. –
Co robi StartLimitInterval? –
@GerhardHagerer Kiedy mówisz [System], myślę, że masz na myśli [Service]. To działało dla mnie. – Haakon
Na wszelki wypadek możesz to zrobić za pomocą [nieśmiertelnego] (https://immortal.run/post/retries/) 'immortal -w 30-r 5' –
nbari