web-dev-qa-db-ja.com

Memcacheが自動的に起動しないのはなぜですか?

CentOSサーバーにmemcacheをインストールし、php用のそれぞれのライブラリもインストールしました。

enter image description here

両方をインストールしたにもかかわらず、Memcacheの使用を終了しました

$memcache = new Memcache;

サーバーの再起動後にmemcacheサービスを自動的に実行したかったので、次のようにしました。

memcached -d -u nobody -m 512 -p 11211 127.0.0.1
chkconfig memcached on

それから私はチェックしました:

chkconfig --list | grep memcache
> memcached 0:off   1:off   2:on    3:on    4:on    5:on    6:off

数分の使用後:

echo stats | nc 127.0.0.1 11211

STAT pid 30412
STAT uptime 1616
STAT time 1424280050
STAT version 1.4.15
STAT libevent 1.4.13-stable
STAT pointer_size 64
STAT rusage_user 0.053991
STAT rusage_system 0.152976
STAT curr_connections 42
STAT total_connections 144
STAT connection_structures 43
STAT reserved_fds 20
STAT cmd_get 639
STAT cmd_set 360
STAT cmd_flush 0
STAT cmd_touch 0
STAT get_hits 262
STAT get_misses 377
STAT delete_misses 0
STAT delete_hits 0
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 147954
STAT bytes_written 455620
STAT limit_maxbytes 536870912
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT bytes 138385
STAT curr_items 359
STAT total_items 360
STAT expired_unfetched 0
STAT evicted_unfetched 0
STAT evictions 0
STAT reclaimed 1
END

数週間、すべてが正常に実行されました。その後、サービスの状態を確認することにしましたが、何らかの理由でmemcacheがまったく動作していませんでした。私はそれを元に戻さなければなりませんでした(私はそれらの週のある時点でサーバーを再起動しました):

memcached -d -u nobody -m 512 -p 11211 127.0.0.1

再起動後にmemcacheが自動的に起動しなかったのはなぜですか?それは何ではありませんかchkconfig memcached onは?なぜそれが機能しなくなったのでしょうか?

1
Carlos Santos

実行しようとするとどうなるか(ログなど)を確認する必要があります

service memcached start

手動で開始したインスタンスを停止した後。それでもboot.logを確認できない場合は、次にシステムを起動するときに、できるだけ早くログを確認してください。


> memcached 0:off 1:off 2:off 3:off 4:off 5:off 6:off

Memcachedは自動開始するように構成されておらず、すべての実行レベルでオフに設定されています。

もう一度オンにしてみてください。

1
user9517

Memcacheが自動的に起動しないのはなぜですか?

「なぜ」の正確な答えはわかりませんが、以下にリストして説明するように、その問題の解決策はあります。

ステップ1)を作成します 実行可能ファイル 名前の付いたファイル

/usr/local/bin/memcached

そのファイルの内容の下に置きます。

#!/bin/sh

echo Checking for memcached instance...
result=$(pidof memcached)
echo "$result"
if [ -z "$result" ]; then
  echo memcached is not running. Attempt to start it...
  /usr/bin/memcached -u memcached -p 11211 -m 1024 -c 1024 -l localhost -d &
else
  echo memcached is already running. Do nothing.
fi

echo End of script.

ステップ2)そのスクリプトを / etc/crontab

* * * * root /usr/local/bin/memcached

それが私がしたことのすべてです。そのスクリプトは毎分実行され、実行中のmemcachedインスタンスをチェックします。

この助けを願っています。