Jaki jest najlepszy sposób na przesłanie łatki, która naprawi wszystkie szkody wyrządzone przez LP: # 600941 ?
Pytam, ponieważ LP: # 600941 został umieszczony w każdej wersji Ubuntu, która jest obecnie obsługiwana. Czy powinienem wybrać konkretną wersję i uruchomić ubuntu-bug
ją? Czy ta wersja to LTS, Oneiric lub Precise (jak mogę uzyskać Precise, jeśli jej potrzebuję?)
Historia jest taka, że po wypchnięciu wszystkich naszych systemów zaczęły występować awarie restartu Nagios nrpe.
Polecenia takie jak /etc/init.d/nagios-nrpe-server restart
spowodowałoby zatrzymanie nrpe, ale nie ponowne uruchomienie.
Śledziłem to tak, jak /etc/init.d/nagios-nrpe-server
wywołuje skrypt start-stop-daemon
.
Problem polega na tym, że /etc/init.d/nagios-nrpe-server
sekcja „stop” w skrypcie najpierw wywołuje start-stop-daemon, który wysyła SIGTERM do nrpe, a następnie czeka tylko przez jedną sekundę.
Jeśli nrpe nie wyszedł do tego czasu, plik pid nadal będzie istniał, a /etc/init.d/nagios-nrpe-server
skrypt go usunie.
Co gorsza, jeśli /etc/init.d/nagios-nrpe-server restart
zostanie użyty nie tylko plik pid zostanie usunięty, próba ponownego uruchomienia nrpe zakończy się niepowodzeniem, pod warunkiem, że demon nrpe nadal opóźnia się przy zamykaniu.
Próba uruchomienia w tych okolicznościach zakończy się niepowodzeniem, ponieważ nrpe nadal będzie powiązane z gniazdem, a druga próba powiązania spowoduje przerwanie uruchamiania nrpe.
Powinni byli się zastanawiać, dlaczego skomentowano „czasami plik pid nie jest usuwany”.
Powinny one były przetestowane na systemach, które mają duże obciążenie, a zatem wolne czasy odpowiedzi nrpe.
Poprawka polega na dodaniu --retry 10
lub innym wywołaniustart-stop-daemon ... --stop ...
Dzięki
źródło