daemontoolsの使い方

daemontoolsを使う | Netsphere Laboratoriesを参考にしました。ありがとうございます。

私的ルール

無効化したサービスは/service/.disabled/に移動

/service/以下に.で始まるフォルダ名にすると無視されるということですが、my_service_nameを.my_service_nameと変えるのはタイプが面倒なので、/service/.disabledというフォルダを作って無効化するときはその下に移動することにしました。

作業するときは/serviceに移動

svcやsvstatにフルパスを指定しても動くのですが、/service/と/service/.disabled間で移動するときにタイプ量が増えるので、最初にcd /serviceしてから作業することにしました。

手順

サービス追加

node-virtualhost1.example.comという名前でサービスを追加する例。 exec -cの後はサービスに応じて変更します。

cd /service
mkdir -p .disabled/node-virtualhost1.example.com
cat <<EOF > .disabled/node-virtualhost1.example.com/run
#!/bin/sh
exec -c /usr/local/node-v0.6.19/bin/node /var/www/app/virtualhost1.example.com/hello.js
EOF
chmod 755 .disabled/node-virtualhost1.example.com/run

サービス有効化

cd /service
mv .disabled/node-virtualhost1.example.com .

状態確認

# svstat node-virtualhost1.example.com/
node-virtualhost1.example.com/: up (pid 1493) 3 seconds

サービス無効化

cd /service
mv node-virtualhost1.example.com .disabled/
svc -tx .disabled/node-virtualhost1.example.com

状態確認

# svstat .disabled/node-virtualhost1.example.com/
.disabled/node-virtualhost1.example.com/: supervise not running

サービス一時停止(Down)

cd /service
svc -d node-virtualhost1.example.com

状態確認

# svstat node-virtualhost1.example.com/
node-virtualhost1.example.com/: down 1 seconds, normally up

サービス一時停止からの再開(Up)

cd /service
svc -u node-virtualhost1.example.com

状態確認

# svstat node-virtualhost1.example.com/
node-virtualhost1.example.com/: up (pid 1512) 1 seconds