web-dev-qa-db-fra.com

Que signifie «<nom_service> mort mais sous-système verrouillé»?

J'essaie d'exécuter memcached sur une boîte centos et cela fonctionne pendant un certain temps, mais se retrouve ensuite dans cet état:

memcached mort mais subsys verrouillé

netstat montre ceci:

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

ps le montre:

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

Quelqu'un sait ce que ça veut dire?

39
Nick Brosnahan

Cela signifie que le service était en cours d'exécution à un moment donné, mais s'est arrêté.

Lorsque vous démarrez un service, il crée un fichier "verrouillé" pour indiquer que le service est en cours d'exécution. Cela permet d'éviter plusieurs instances du service. Lorsque vous arrêtez un service, ce fichier de verrouillage est supprimé.

Lorsqu'un service en cours d'exécution se bloque, le fichier de verrouillage existe mais le processus n'existe plus. Ainsi, le message.

Regardez les deux domaines /var/run/*.pid et /var/lock/subsys/*. Ceux-ci devraient être d'accord les uns avec les autres. Autrement dit, si le fichier de verrouillage (fichier emtpy) /var/lock/subsys/crond existe, puis la première ligne du fichier /var/run/crond.pid devrait contenir le PID du processus en cours d'exécution pour ce service. Si aucun processus de ce type n'est en cours, quelque chose ne va pas. Si un processus est en effet en cours d'exécution (comme vous le voyez) mais qu'il n'est pas que PID, alors quelque chose est probablement confus.

62
Eddie