Co oznacza „<nazwa_usługi>” martwa, ale subskrybcje zablokowane?

38

Próbuję uruchomić memcached na polu centos i działa przez chwilę, ale potem kończy się w tym stanie:

memcached martwy, ale subskrybcje zablokowane

netstat pokazuje to:

tcp        0      0 :::11211                    :::*                        LISTEN      
udp        0      0 0.0.0.0:11211               0.0.0.0:*                               

ps pokazuje to:

nobody   21983  0.0  1.8  60272 19912 ?        Ssl  16:46   0:00 memcached -d -p 11211 -u nobody -c 1024 -m 64

Czy ktoś wie co to znaczy?

Nick Brosnahan
źródło

Odpowiedzi:

61

Oznacza to, że usługa była uruchomiona jednorazowo, ale uległa awarii.

Po uruchomieniu usługi tworzony jest plik „blokady” wskazujący, że usługa jest uruchomiona. Pomaga to uniknąć wielu wystąpień usługi. Po zatrzymaniu usługi ten plik blokady jest usuwany.

Gdy uruchomiona usługa ulega awarii, plik blokady istnieje, ale proces już nie istnieje. Tak więc wiadomość.

Spójrz na dwa obszary /var/run/*.pidi /var/lock/subsys/*. Oczekuje się, że się ze sobą zgodzą. Oznacza to, że jeśli /var/lock/subsys/crondistnieje plik blokujący (plik pusty) , /var/run/crond.pidto oczekuje się , że pierwszy wiersz pliku będzie zawierał PID procesu uruchomionego dla tej usługi. Jeśli żaden taki proces nie jest uruchomiony, oznacza to, że coś jest nie tak. Jeśli proces rzeczywiście działa (jak widzisz), ale nie jest to PID, prawdopodobnie coś jest pomylone.

Eddie
źródło
Czy nadal nie działa, jeśli jest powiązany z portem i wymieniony w ps?
Nick Brosnahan
Rozszerzyłem swoją odpowiedź. Wykonaj „ls / var / lock / subsys / memcached” (zakładam, że ten plik istnieje), a następnie „cat /var/run/memcached.pid” i spójrz na pierwszą linię. Pierwszy wiersz to PID, którego powinieneś się spodziewać w memcached.
Eddie
Przepraszam, zorientowałem się, co się dzieje. To wciąż działało. Uruchomiłem go za pomocą „sudo / sbin / service memcached start”, ale patrząc wstecz w mojej historii, uzyskałem status używając „/ sbin / service memcached service”. PEBCAK. Wszystko dobrze. Dzięki za pomoc.
Nick Brosnahan
5
Ach, i jeśli status nie jest rootem, być może nie miałeś dostępu do odczytu do /var/run/memcached.pid, więc komenda zakładała, że ​​podsystem nie działa, ponieważ nie mógł zlokalizować prawidłowego procesu.
Eddie