TiarraやTwiProwlをdaemontoolsで管理する

OSはUbuntu Server 10.04

sudo apt-get install daemontools daemontools-run
mkdir -p daemontools/tiarra
cd daemontools/tiarra
vim run
  #!/bin/sh
  cd /home/ebith/bin/tiarra
  exec 2>&1
  exec setuidgid ebith perl ./tiarra
mkdir log
vim log/run
  #!/bin/sh
  exec 2>&1
  exec setuidgid ebith multilog t /home/ebith/daemontools/tiarra/log/main
chmod +x run log/run
sudo ln -s /home/ebith/daemontools/tiarra /etc/service/

シンボリックリンクを張るとrunが読み込まれて監視が始まる。

#!/bin/sh
cd /home/ebith/bin/twiprowl
export PATH=/home/ebith/.rvm/bin:${PATH}
export HOME=/home/ebith
exec 2>&1
exec setuidgid ebith ruby ./twiprowl

TwiProwlはRVM経由で動かしたいので環境変数を設定する。
HOMEも指定してあげないと'~'が展開できずにエラーになる。

sudo svstat /etc/service/*
sudo svstat /etc/service/*/log/*

svstatを使うと起動してからの経過秒数が出るのでうまく動いてるかどうかを確認できる。

sudo svc -d /etc/service/hoge  #停止
sudo svc -u /etc/service/hoge  #開始

TwiProwlのdaemonオプションがtrueのままdaemontoolsにぶち込む等のアホなことをした場合はsvcコマンドを使う。
そもそも監視させたくなくなった場合はシンボリックリンクを削除とかchmod -xとかする。