supervisordを使う


supervisordを使う

1 ダウンドーロドおよびインストール

1.1 EPELパッケージを使ってインストールします。

yum -y --enablerepo=epel install supervisor

2 /etc/supervisord.confを編集します。

2.1 WebUI用のIPアドレスとユーザー名,パスワードを設定します。

vi /etc/supervisord.conf
[supervisord]
http_port=/var/tmp/supervisor.sock ; (default is to run a UNIX domain socket server)
http_port=131.113.xxx.xxx:9001     ; (alternately, ip_address:port specifies AF_INET)

http_username=soushi             ; (default is no username (open system))
http_password=password           ; (default is no password (open system))

2.2 プロセスの設定ファイル/etc/supervisord.d/*.iniを読み込むようにします。

vi /etc/supervisord.conf
[include]
files = /etc/supervisord.d/*.ini

3 起動します。

service supervisord start
chkconfig supervisord on

4 プロセスの登録

  • supervisordによってデーモン化したいプロセスを登録します。
  • <プロセス名>.iniというテキストファイルを作成し、その中に起動コマンドなどを書いてから、/etc/supervisord.d/に保存しておくと、supervisordが自動でプロセスを起動してくれます。
  • 今回は、練習として、zookeeperを登録します。
vi /etc/supervisord.d/zookeeper.ini
[program:Zookeeper]
command=/usr/local/zookeeper/bin/zkServer.sh start

6 dockerコンテナで使うためのスクリプト

RUN mkdir -p /usr/local/download/
WORKDIR /usr/local/download/
RUN curl -O wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
RUN rpm -Uvh epel-release-6-8.noarch.rpm
RUN yum -y install supervisor
ADD supervisord.conf /etc/supervisord.conf

VOLUME ["/etc/supervisord.d"]