daemontoolsメモ
全然使いこなせてないけど、これまでに覚えてきたことのまとめ。
runスクリプト記述時の注意点は
- 環境変数はとりあえずexportしない
exportするのは、少なくとも定義が終わってから
- execコマンドを使うことで、子プロセスの生成を避ける
実行中のコマンドが落ちたらそのシェルも落ちる、という状態にする
更にCatalystのプロセスを監視する際は
- daemontools付属のsetuidgidでユーザ指定
- -d(daemonでのバックグラウンドでの動作)はやめる
- 上記から、pidファイルを生成する必要もない
監視スタートする際は
- runスクリプトを置いたフォルダに/serviceからシンボリックリンク貼る
# ln -s /path/to/run/ /service/app
そのリンクの名前が監視プロセスの識別になる
- runスクリプトは実行権限つけてないとしねる
監視を止める際は
- /service以下にあるシンボリックリンクをドットから始めるようにリネーム
# mv /service/app /service/.app
- 上をやった状態で #svc -tx /service/.app で監視が完全にストップ