Skrócenie czasu wyłączenia dla „uruchomionego zadania zatrzymania”


18

Mam node.js i pm2 zainstalowane na Pi (Raspbian). PM2 został skonfigurowany do uruchamiania przez pm2 startupi tworzone przez niego skrypty inicjujące. Czasami po ponownym uruchomieniu system wyłącza się na kilka minut:

A stop job is running for LSB: PM2 init script (... / 5min)

Co jakiś czas 1 zakładam, że PM2 nie zamyka się prawidłowo i zawiesza się przez pełne 5 minut.

W tym systemie wiem dokładnie, którymi aplikacjami zarządza PM2 i naprawdę nie dbam o to, czy zamykają się prawidłowo.

Moje pytanie brzmi: jak skrócić limit czasu z 5 minut do, powiedzmy, 15 sekund lub więcej? Gdzie to jest skonfigurowane?

Przeczytałem na forum, że był to DefaultTimeoutStopSecklucz w /etc/systemd/system.conf , więc próbowałem ustawić to na „15s”, ale to nie miało żadnego efektu. Próbowałem tego samego w /etc/systemd/user.conf , ale bez zmian. Limit czasu jest nadal ustawiony na 5 minut.


1 Właściwie wiem dokładnie, co to powoduje, ale szczegóły nie są ważne, a efekt jest nieunikniony.


1
Jeśli istnieje (domyślny) stopskrypt, możesz napisać go ponownie, aby wykonać a forcestopnawet zabić pm2zamiast płynnego zamknięcia.
Tigger,

@Tigger Właściwie doszedłem do podobnego wniosku. Z desperacji, którą właśnie stopwykonałem w skrypcie init pm2, nic nie rób i pozwól mu umrzeć naturalnie po wyłączeniu. To okropne rozwiązanie do ogólnego użytku, ale w tym konkretnym systemie jest w porządku. Nadal chcę wiedzieć, jak zmienić limit 5 minut.
Jason C,

Odpowiedzi:


8

Jak skrócić limit czasu z 5 minut do, powiedzmy, 15 sekund lub więcej?

Przebudowujesz systemd ze źródła, łatając czas oczekiwania na połączeniesystemv-sysv-generator od TimeoutSec=5mintego, co chcesz. Lub poprosisz systemowych ludzi o pokrętło kontrolne gdzieś w nagłówkach Fedora / SUSE lub LSB.

Lub, chwytając rękę, rezygnujesz z używania tego rcskryptu, który masz, i piszesz systemową jednostkę serwisową dla swojej usługi, której limity czasu możesz ustawić za pomocą jawnego TimeoutSec=ustawienia, zainstalowanego z plikiem ustawień drop-in, /etc/systemd/system/pm2.service.d/timeout.confjeśli to konieczne.

Biorąc pod uwagę to , to , to , to , to i inne, tutaj obowiązuje również pierwsza reguła migracji do systemd.

Dalsza lektura


17

/etc/systemd/system.conf ma linię

#DefaultTimeoutStopSec=90s

które można odrzucić i zmienić


Wspomniałem o tym w moim poście i zmiana tego nie ma wpływu.
Jason C

ustawienie 45s w Arch Linux ułatwia szybkie postoje na nvmedysku - do naprawdę szybkich postojów wykorzystują Alpine Linux (brak systemd)
Stuart Cardall
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.