Назад | Перейти на главную страницу

memcached не перезапускается должным образом start-stop-daemon: предупреждение: не удалось убить 8175: такого процесса нет

У меня действительно странная и неприятная проблема с memcached. Я запускаю ubuntu server 10.04lts на экземпляре linode. Я использую ткань с проектом django, и часть сценария фабрики позволяет перезапустить процесс memcached. сегодня я заметил, что ткань выдает ошибку, говоря следующее

Restarting memcached: start-stop-daemon: warning: failed to kill 8175: No such process

Затем я немедленно ssh'd к коробке, чтобы начать ковыряться вокруг, чтобы увидеть, было ли это всего лишь одноразовым или какой-то проблемой с тканью. поэтому я запускаю команду прямо в коробке

Restarting memcached: start-stop-daemon: warning: failed to kill 8186: No such process

такая же сделка, другой идентификатор процесса. Затем я попытался подключиться по Telnet к memcached, который работал нормально. теперь идентификатор процесса был 8123. a quick ps aux | Команда grep memcached показала, что процесс выполняется под этим pid.

www-data  7259  0.0  0.1  45972   772 ?        Ssl  16:38   0:00 memcached -d -u www-data -p 11211 -m 64
www-data  8123  0.0  2.4  57220 12260 ?        Ssl  17:02   0:00 memcached -d -u www-data -p 11211 -m 64

поэтому я подумал, может быть, что-то случилось во время установки memcached через apt, чего я просто не заметил раньше, поэтому я удалил memcached и переустановил без каких-либо ошибок. Затем я запустил memcached со следующими параметрами

sudo memcached -d -u www-data -p 11211 -m 64

действительно странная вещь, если я остановлю memcached и запустю его снова, я могу запустить /etc/init.d/memcached restart без каких-либо ошибок один раз, после чего то же самое предупреждение о том, что pid не найден, происходит снова и снова.

Я в своем уме покончить с этим, пожалуйста, помогите: / !!

Принудительно убить запущенные процессы,

sudo kill -9 {process_id}

Убедитесь, что ничего не запущено, если существует /var/run/memcached.pid, это тоже: p

Затем попробуйте sudo /etc/init.d/memcachd start

Убедитесь, что идентификатор процесса в /var/run/memcached.pid совпадает с идентификатором, когда вы ps aux | grep memcache. Если они это сделают, тогда все будет в порядке, запустив sudo /etc/init.d/memcachd {start / stop / restart}

Скрипт-выскочка тоже было бы круто :)

Крис

На самом деле об этом сообщалось как об ошибке:

https://bugs.launchpad.net/ubuntu/+source/memcached/+bug/795673

Я только что исправил это в выпуске Ubuntu для разработчиков (точнее на данный момент). Исправление довольно крошечное и должно быть обратно переносимым до 10.04, если позволит время.

Поскольку вы используете Lucid, рассматривали ли вы возможность установки memcached в Upstart?

Примерно так должно работать:

$ cat /etc/init/memcached.conf
# memcached - in-memory cache
#
description "memcached"

start on (local-filesystems and started networking)
stop on runlevel [!2345]

respawn

pre-start script
  test -x /usr/bin/memcached || { stop; exit 0; }
end script

exec /usr/bin/memcached -d -u www-data -p 11211 -m 64 

В этом случае Upstart будет поддерживать работу memcached.