memcachedで本当に奇妙で厄介な問題が発生しています。 linodeインスタンスでubuntuサーバー10.04ltsを実行しているim。 Djangoプロジェクトでファブリックを使用していて、ファブリックスクリプトの一部で、memcachedプロセスを再起動できます。今日、ファブリックが次のようなエラーを出力していることに気付きました。
Restarting memcached: start-stop-daemon: warning: failed to kill 8175: No such process
次に、すぐにボックスにSSHで接続して、それが1回限りの問題なのか、ファブリックに関する何らかの問題なのかを確認しました。だから私はボックスで直接コマンドを実行します
Restarting memcached: start-stop-daemon: warning: failed to kill 8186: No such process
同じ取引の異なるプロセスID。次に、正常に機能するmemcachedにtelnetで接続しようとしました。プロセスIDは8123になりました。クイックpsaux | 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
apt経由でmemcachedをインストールしているときに、今まで気づかなかったことが起こったのではないかと思ったので、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が存在する場合は、何も実行されていないことを確認してください。
次に、Sudo /etc/init.d/memcachdstartを試してください
/var/run/memcached.pidのプロセスIDが、ps aux |の場合のプロセスIDと一致することを確認します。 grepmemcache。もしそうなら、Sudo /etc/init.d/memcachd {start/stop/restart}をうまく実行しているはずです。
Upstartスクリプトもかっこいいでしょう:)
クリス
これは実際にはバグとしてここに報告されました:
https://bugs.launchpad.net/ubuntu/+source/memcached/+bug/79567
Ubuntuの開発リリースで修正しました(現在は正確です)。修正は非常に小さく、時間の許す限り、10.04にバックポータブルする必要があります。
Lucidを使用しているので、Upstartでmemcachedを設定することを検討しましたか?
このようなものが機能するはずです:
$ 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の存続を処理します。