Home > 仕事のこと > myapp_server.pl と daemontools のこと

myapp_server.pl と daemontools のこと

ときおり吹く涼しい夜風に枯葉の匂いがまじり、秋の訪れを感じさせる今日この頃、Catalyst で開発されているみなさんは HTTP サーバは何をお使いですか?
僕はと言えば、Catalyst の myapp_server.pl を使っています。

Catalyst リリース直後に IE の POST が動かなくて使えないなぁと思い Apache を使っていましたが初夏に新しい開発用の PC を買って何気なく myapp_server.pl を叩いたら早いこと早いこと。
それ以来、Apache ではなく myapp_server.pl を使っています。今では IE のPOST もちゃんも動きますし。
ただ、気になのはログが標準出力にだらだら流れるのがいやだなと。
僕は tail ではなく、less でログを見る人なので / で検索したいし、Ctl + P とかでログを遡りたいんです。

とまぁ、そんな不自由を感じつつも Apache の遅さには戻れないので myapp_server.pl を daemontools で動かすことにしたわけです。
daemontools のインストールはこんな感じ。

cd /tmp
mkdir /package
chmod 1755 /package
wget http://tools.qmail.jp/daemontools/daemontools-0.76.tar.gz
tar xzvfp daemontools-0.76.tar.gz
cd admin/daemontools-0.76
wget http://qmail.org/moni.csi.hu/pub/glibc-2.3.1/daemontools-0.76.errno.patch
patch -p1 < ./daemontools-0.76.errno.patch

package/install

で、daemontools に管理させるプログラムを登録?と言うんでしょうか。それをしなくていけないのですが
それには下記のようなスクリプトを作ります。例は shiori_server.sh。

#!/bin/sh

cd /service && \
for x in shiori_server

  do
  mkdir $x && chmod +t $x && \
  mkdir $x/log && \
  mkdir $x/log/main && \

  touch $x/log/status && \
  chown travail:travail $x/log/main $x/log/status
done

cd /service/shiori_server && touch run && \

 chmod 755 run && chown travail:travail run
cat <<'EOF' > /service/shiori_server/run
#!/bin/sh

PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin
export PATH

cd /home/travail/public_html/SVNHOME/Shiori/script/ && \
exec setuidgid travail /home/travail/public_html/SVNHOME/Shiori/script/shiori_server.pl -r -p 3001 2>&1
EOF

cd /service/shiori_server/log && \
touch run && \
chmod 755 run && \
chown travail:travail run

cat <<'EOF' > /service/shiori_server/log/run
#!/bin/sh
exec setuidgid travail multilog t s1000000 n100 ./main
EOF

exit;

あとは、sudo なんかして shiori_server.sh を実行すると /service/shiori_server/*** が作られるわけです。
/service/shiori_server/*** が作られると daemontools が勝手に shiori_server.pl を起動します。
ログもちゃんとファイルに保存されるし、less で見れるし、/ で検索できるし。この環境が僕は好きです。
あとは、Gearman の Worker を daemontools で動かしたりしてますね。
デプロイした後に Worker の再起動なんかも

# svc -t /service/***

で出来るので比較的楽だと思います。

Comments:0

Comment Form

Trackbacks:0

TrackBack URL for this entry
http://hibinokoto.jp/mt/mt-tb.cgi/214
Listed below are links to weblogs that reference
myapp_server.pl と daemontools のこと from 日々のこと

Home > 仕事のこと > myapp_server.pl と daemontools のこと

Search
Feeds

Return to page top