はじめに

こんにちは。インフラエンジニアレベル1のf_prgです。
業務でdaemontoolsに触ったんですが、すっかり忘れたので
おさらいをしながら方法を書いていきます。

daemontoolsとは

ロギングやプロセス監視をするツールです。
https://ja.wikipedia.org/wiki/Daemontools

daemontoolsのインストール

早速インストールしてみます。
ドキュメントはこちらです。
http://cr.yp.to/daemontools/install.html

[root@ip-10-10-1-69 ~]# yum -y install gcc gcc-c++
[root@ip-10-10-1-69 ~]# cd /usr/local/src
[root@ip-10-10-1-69 src]# curl -O http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
[root@ip-10-10-1-69 src]# tar xzf daemontools-0.76.tar.gz
[root@ip-10-10-1-69 src]# cd admin/daemontools-0.76/
[root@ip-10-10-1-69 src]# curl -O http://qmail.org/moni.csi.hu/pub/glibc-2.3.1/daemontools-0.76.errno.patch
[root@ip-10-10-1-69 src]# patch -p1 

インストールを始めたところ、error.hのパッチが必要と知りました。
パッチを当てることをお忘れなく。

damontoolsの準備

nginxを起動させるような仕組みを考えました。

[root@ip-10-10-1-69 service]# yum -y install nginx
[root@ip-10-10-1-69 service]# cd /service
[root@ip-10-10-1-69 service]# mkdir nginx
[root@ip-10-10-1-69 service]# cd nginx/
[root@ip-10-10-1-69 service]# vim run
[root@ip-10-10-1-69 service]# chmod 755 run

runファイルはこんな感じにしました。

#!/bin/sh

exec -c /etc/init.d/nginx start

damontoolsの起動

[root@ip-10-10-1-69 ~]# /bin/sh /command/svscanboot &
[root@ip-10-10-1-69 ~]# svstat /service/nginx
/service/nginx: up (pid 4695) 1 seconds

動いてますね。psコマンドでも確認できました。

nginxを停止して、再起動されるかどうか確認する。

[root@ip-10-10-1-69 ~]# /etc/init.d/nginx stop
Stopping nginx:
                                           [  OK  ]

止めても、再起動されていることを確認できました。

まとめ

古いツールのようで、ドキュメントや方法がすぐに調べられました。
個人的には、monitやsupervisordの方が好きです。

参考資料・リンク

http://cr.yp.to/daemontools/install.html

元記事はこちら

daemontoolsを使う