daemontools はめったに設定しないので毎回忘れる!とくにmultilogとか編集中にはダウンさせておくとか。一連の流れをまとめたメモ。

インストール

$ sudo apt-get install daemontools-run
$ cd
$ mkdir daemontools

foo ディレクトリをつくり、スティッキービットをたてる

$ cd ~/daemontools
$ mkdir foo
$ mkdir foo/log
$ chmod +t foo

シンボリックリンクを /etc/service 以下につくる

自動で supervise が起動するのでダウンさせておく

$ cd /etc/service
$ sudo ln -s /home/hoge/daemontools/foo foo
$ sudo svc -d /etc/service/foo
$ sudo svc -d /etc/service/foo/log

runを作成

$ cd ~/daemontools/foo
$ vim run
export PATH=/path/to/library
cd /home/hoge/app/foo && exec setuidgid hoge executable-file

log/runを作成

$ vim log/run
exec setuidgid hoge multilog t ./main

作成したrunファイルに実行パーミッションを付与

ログを書き込むためにlogディレクトリの所有ユーザを指定する

$ chmod +x run log/run
$ chown hoge log

先ほどダウンさせたサービスを開始する

$ sudo svc -u /etc/service/foo/log
$ sudo svc -u /etc/service/foo
$ sudo svstat /etc/service/foo
$ sudo svstat /etc/service/foo/log

を実行して up の秒数が増えていれば正常に起動している。10 seconds 以上にならないときは異常終了しているので環境変数やパスが間違っていないか確認する。