Che cosa significa "<nome_servizio> morto ma subsys bloccato"?


38

Sto cercando di eseguire memcached su una casella di centos e funziona per un po ', ma poi finisce in questo stato:

memcached morto ma subsy bloccato

netstat mostra questo:

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

ps mostra questo:

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

Qualcuno sa cosa significa?

Risposte:


61

Ciò significa che il servizio era in esecuzione contemporaneamente, ma si è arrestato in modo anomalo.

Quando si avvia un servizio, viene creato un file di "blocco" per indicare che il servizio è in esecuzione. Ciò consente di evitare più istanze del servizio. Quando si interrompe un servizio, questo file di blocco viene rimosso.

Quando un servizio in esecuzione si arresta in modo anomalo, il file di blocco esiste ma il processo non esiste più. Quindi, il messaggio.

Guarda le due aree /var/run/*.pide /var/lock/subsys/*. Questi dovrebbero concordare tra loro. Cioè, se /var/lock/subsys/crondesiste il file di blocco (file emtpy) , la prima riga del file /var/run/crond.piddovrebbe contenere il PID del processo in esecuzione per questo servizio. Se tale processo non è in esecuzione, allora qualcosa non va. Se un processo è effettivamente in esecuzione (come vedi) ma non è quel PID, allora qualcosa è probabilmente confuso.


Non è ancora in esecuzione se è associato a una porta ed elencato in ps?
Nick Brosnahan,

Ho esteso la mia risposta. Fai "ls / var / lock / subsys / memcached" (suppongo che questo file esista) e poi "cat /var/run/memcached.pid" e guarda la prima riga. La prima riga è il PID che dovresti aspettarti di vedere per memcached.
Eddie,

Mi dispiace, ho capito cosa stava succedendo. Stava ancora funzionando. L'ho lanciato usando "sudo / sbin / service memcached start", ma guardando indietro nella mia cronologia, ho ottenuto lo stato usando "/ sbin / service memcached service". PEBCAK. Tutto bene. Grazie per l'aiuto.
Nick Brosnahan,

5
Ah, e eseguendo lo stato non come root, potresti non aver avuto accesso in lettura a /var/run/memcached.pid, quindi il comando ha assunto che il sottosistema fosse morto perché non riusciva a individuare il processo corretto.
Eddie,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.