Daemontools是管理Unix服务的工具,它提供一组工具来管理一系列用户进程,当进程由于某些原因down掉之后,daemontools会自动重启进程。本文以对zookeeper和storm监控的例子记录daemontools的用法。
1、 安装daemontools
mkdir /opt/daemontools
cd /opt/daemontools
wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
tar -xzvf daemontools-0.76.tar.gz
完成上述步骤后需要进行一些修改,否则执行安装时会报错,在src下的conf-cc文件的第一行最后添加如下代码即可 -include /usr/include/errno.h
vim /opt/daemontools/admin/daemontools/src/conf-cc
添加完后内容如下:
修改完成后执行以下命令编译:
cd /opt/daemontools/admin/daemontools-0.76/
package/install
2、管理zookeeper、storm
创建配置文件,位置可自定义,本示例创建在/opt/daemontools/service下
cd /opt/daemontools/
mkdir -p service/zookeeper
cd service/zookeeper/
vim run
run内容如下:
#!/bin/sh
exec /opt/zookeeper/bin/zkServer.sh start
管理storm nimbus
cd /opt/daemontools/service/
mkdir nimbus
cd nimbus/
vim run
run内容如下:
#!/bin/sh
exec /opt/storm/bin/storm nimbus
“/opt/zookeeper/bin/zkServer.sh start”和”/opt/storm/bin/storm nimbus”分别为zookeepr和nimbus的启动命令,可以发现配置比较简单,只需要吧对应进程的启动命令加入配置文件即可。此处需要注意的一点,配置启动命令时切勿配置成后台启动,即不要在末尾添加&符号,否则会造成大量重复启动。
配置完成后需要给run文件赋运行权限
chmod 755 run
ui、supervisor等配置方法同理,不再赘述。
3、管理进程
3.1 启动被管理的进程
cd /opt/daemontools/service/
nohup ./zookeeper/ & # (启动之后,如果zookeeper挂掉,daemontools会自动重启zookeeper)
nohup ./nimbus/ & # (启动之后,如果nimbus挂掉,daemontools会自动重启nimbus)
其他启动同理。
3.2 查看被管理的进程状态
cd /opt/daemontools/service/
svstat ./zookeeper/
3.3 关闭被管理的进程(不会关闭daemontools supervise进程)
cd /opt/daemontools/service/
svc -d ./nginx/