2013年9月6日金曜日

CentOS / Debian 両方で使える memcached 複数インスタンス対応の init スクリプト

CentOS に標準で添付される memcached 用の init スクリプトは、単一のインスタンスを起動することしかできません。探していると memcached.conf を複数配置して実行するもの は存在するんですが、ほしいのは /etc/sysconfig/memcached を使う CentOS のやりかたと互換性を保ちながら複数インスタンスに拡張するものでした。

というわけで Debian 用の memcached.conf を複数配置するものをベースにして、CentOS / Debian 両対応するとともに環境変数を /etc/sysconfig/memcached から読み込んでインスタンスを起動するものを作成しました。

こちらです: https://github.com/yuryu/memcached-better-init-script/

使い方


もし1インスタンスしか使わない場合は、従来の init スクリプトと変わらず、 /etc/sysconfig/memcached がそのまま使えます。以下は複数インスタンスを起動するときのやりかたです(READMEを日本語にしたものです)。

/etc/sysconfig/memcached-server1
/etc/sysconfig/memcached-server2
        .
        .
        .
/etc/sysconfig/memcached-serverN
というふうに必要なだけサーバーを並べます。 server1 の部分は好きな名前が使えます。
service memcached start
とすると、すべてのサーバーを起動します。
service memcached start server3
とすると、指定したサーバーのみ起動します。 stop も同様です。 それぞれのファイルの中身は
PORT="11212"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""
という感じで指定します。
CentOS 6.4 で動作確認しています。 LSB 準拠なので Debian でも動くはずですが確認はしていません。 CentOS では redhat-lsb-core パッケージが必要です。

1 件のコメント: