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

перезапуск службы memcached дает:
остановка memcached: [сбой]
запуск memcached: [ ok ]

статус службы memcached выдает:
memcached не работает, но подсистема заблокирована

ls внутри /var/lock/subsys/ показывает файл с именем memcached

ls внутри /var/run/ не показывает файла pid с именем memcached
здесь есть еще одна папка с именем memcached, но в этой папке ничего нет.

rm /var/lock/subsys/memcached избавляется от файла блокировки memcached

перезапуск службы memcached дает:
остановка memcached: [сбой]
запуск memcached: [ ok ]

статус службы memcached выдает:
memcached не работает, но подсистема заблокирована

что я делаю не так?

РЕДАКТИРОВАТЬ: я хотел бы добавить, что я искал это перед публикацией, и я либо уже выполняю шаги, перечисленные в указанном сообщении, либо этому сообщению уже много лет.


person Colin Hilbert    schedule 05.03.2014    source источник
comment
Я перезапустил Linux, чтобы вернуть его в рабочее состояние, но было бы неплохо узнать более мягкий способ снова заставить его работать.   -  person Colin Hilbert    schedule 06.03.2014


Ответы (7)


Есть ли другой процесс, связанный с TCP/11211?

Возможно, вы пытались запустить службу memcached от имени непривилегированного пользователя, но это не удалось:

$ service memcached start
Starting memcached:                                        [  OK  ]
touch: cannot touch ‘/var/lock/subsys/memcached’: Permission denied

После этого service memcached status ложно сообщит, что memcached не запущен:

$ service memcached status
memcached dead but subsys locked

Но он есть, и он привязан к порту 11211, для того, чтобы это проверить можно использовать:

$ fuser -n tcp 11211
11211/tcp:            4439

Or:

$ pgrep -l memcached
4439 memcached

Memcached не запустится, потому что он не может привязаться к 11211, так как работающий экземпляр уже привязан к нему. К сожалению, есть некоторые системы (я смотрю на вас, CENTOS), где он может не оставить полезного намека на /var/log/messages или /var/log/syslog. Вот почему многие из предыдущих ответов на этот вопрос, связанные с адресом привязки, будут выглядеть так, как будто они решили проблему.

Как это исправить?

Так как service stop memcached работать не будет, придется его убить:

$ pkill memcached

Или это (где 4439 — это pid, который вы нашли на предыдущем шаге):

$ kill 4439

Тогда вы можете сделать это правильно, используя sudo:

$ sudo service memcached start
Starting memcached:                                        [  OK  ]
$ service memcached status
memcached (pid 6643) is running... 
person Paulo Scardine    schedule 11.07.2016

Решил эту проблему, набрав в терминале следующие команды:

1) su (становится корневым).

2) killall -9 memcached (убийство memcached).

3) /etc/init.d/memcached start (запуск memcached руками).

Как вариант: 3) запуск службы memcached.

person cofirazak    schedule 25.03.2014

проверьте /etc/sysconfig/memcached и убедитесь, что OPTIONS="-l 127.0.0.1" указан правильно

person Miguel    schedule 17.06.2014

Удалите -l из ОПЦИИ.

например, вместо OPTION="-l 2.2.2.2" попробуйте использовать OPTION="2.2.2.2"

Это сработало для меня.

person avaj    schedule 06.05.2015

Чтобы решить эту проблему, запустите следующий скрипт от имени пользователя root rm /var/run/memcached/memcached.pid rm /var/lock/subsys/memcached service memcached start

person Rotceh    schedule 17.03.2016
comment
Почему? Что оно делает? Любая ссылка об этом? - person dakab; 17.03.2016

Мне помогло удаление и переустановка memcached:

[acool@acool super-confidential-dir]$ sudo yum remove memcached
...
[acool@acool super-confidential-dir]$ sudo yum install memcached

После вышеуказанных команд и запуска я получил:

[acool@acool super-confidential-dir]$ sudo service memcached status
memcached dead but pid file exists

В этот момент я убил его и удалил файл pid:

[acool@acool super-confidential-dir]$ sudo killall -s 9 memcached
...
[acool@acool super-confidential-dir]$ sudo rm /var/run/memcached/memcached.pid

И, наконец, запустил его и проверил его статус:

[acool@acool super-confidential-dir]$ sudo service memcached start
...
[acool@acool super-confidential-dir]$ sudo service memcached status
memcached (pid  13804) is running...

И тогда я снова был счастлив.

Удачи.

person angelcool.net    schedule 06.04.2017

В моем случае я хотел использовать memcache через сокет с

OPTIONS="-t 8 -s /run/memcached/memcached.sock -a 0777 -U 0"

скопировал с другой ОС и получил ту же проблему. Потом я понял, что просто забыл, что в моей ОС /run/ не существует. Вот и все. Просто проверь свой путь, ха

person Lev Zadumkin    schedule 03.01.2021