Что означает «<service_name> мертв, но подписчики заблокированы»?

38

Я пытаюсь запустить memcached на блоке centos, и он работает некоторое время, но затем оказывается в этом состоянии:

memcached мертв, но subsys заблокирован

netstat показывает это:

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

PS показывает это:

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

Кто-нибудь знает, что это значит?

Ник Броснахан
источник

Ответы:

61

Это означает, что служба была запущена одновременно, но произошел сбой.

Когда вы запускаете службу, она создает файл блокировки, чтобы указать, что служба запущена. Это помогает избежать нескольких экземпляров службы. Когда вы останавливаете службу, этот файл блокировки удаляется.

При сбое работающей службы файл блокировки существует, но процесс больше не существует. Итак, сообщение.

Посмотрите на две области /var/run/*.pidи /var/lock/subsys/*. Ожидается, что они согласятся друг с другом. То есть, если существует файл блокировки (файл emtpy) /var/lock/subsys/crond, то /var/run/crond.pidожидается , что в первой строке файла будет указан PID процесса, запущенного для этой службы. Если такой процесс не запущен, значит что-то не так. Если процесс действительно запущен (как вы видите), но это не тот PID, то, возможно, что-то не так.

Эдди
источник
Разве он не работает, если он связан с портом и указан в ps?
Ник Броснахан
Я расширил свой ответ. Сделайте «ls / var / lock / subsys / memcached» (я предполагаю, что этот файл существует), а затем «cat /var/run/memcached.pid» и посмотрите на первую строку. Первая строка - это PID, который вы должны увидеть для memcached.
Эдди
Извините, я понял, что происходит. Это все еще бежало. Я запустил его с помощью «sudo / sbin / service memcached start», но, оглядываясь назад, я получил статус с помощью «/ sbin / service memcached service». PEBCAK. Все хорошо. Спасибо за вашу помощь.
Ник Броснахан,
5
А если вы работали с состоянием не root, у вас, возможно, не было доступа на чтение к /var/run/memcached.pid, поэтому команда предположила, что подсистема мертва, потому что не смогла найти правильный процесс.
Эдди