daemontools安装和使用
参考:
http://cr.yp.to/daemontools/install.html
daemontools用于自动重启进程。当某个关键服务进程崩溃,可以利用daemontools启动它。条件是安装并配置它。比如zookeeper服务,作为1个关键服务,崩溃后必须重启。下面介绍daemontools在RHEL6.4(el6)上的安装和用法。
1 安装daemontools
首先是el6安装gcc:
# yum install gcc
然后是下载并安装daemontools:
# wget --no-check-certificate http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
# tar zxf daemontools-0.76.tar.gz
# cd admin/daemontools-0.76/
# sed -i 's/extern int errno;/#include <errno.h>/1' ./src/error.h
# ./package/install
2 配置daemontools
配置启动项, 把 csh -cf '/command/svscanboot &' 加入到 /etc/rc.local=>/etc/rc.d/rc.local 末尾:
# sed -i '$acsh -cf x27/command/svscanboot &x27' /etc/rc.d/rc.local
# sh /etc/rc.local
检查1下服务是不是启动:
# ps -ef | grep svscanboot
root 1618 1 0 23:37 ? 00:00:00 /bin/sh /command/svscanbootroot 3992 1911 0 23:51 pts/0 00:00:00 grep svscanboot
3 添加监控的服务
经过以上步骤,我们已配置好daemontools. 下面添加我们要监控的服务。例如salt-minion。使用下面的命令控制服务:
# service salt-minion status|stop|start|restart
配置1个服务非常简单:
1) 创建1个目录,目录下放1个run脚本
2) run脚本履行启动服务的命令
3) 建立/service下1个链接
全部进程以下:
# mkdir /root/salt
# vi /root/salt/run # 内容就下面2句:
#!/bin/sh
exec service salt-minion start
# chmod 1755 /root/salt
# chmod 755 /root/salt/run
# ln -s /root/salt /service/salt
奇异的就是最后1句,1旦创建了链接,daemontools就会自动帮你启动salt-minion服务了。你可以试着停止服务,然后在看看服务是不是又被启动了:
[root@hacl-node3 ~]# service salt-minion stop
Stopping salt-minion daemon: [ OK ]
[root@hacl-node3 ~]# service salt-minion status
salt-minion (pid 7844) is running...
[root@hacl-node3 ~]# service salt-minion stop
Stopping salt-minion daemon: [ OK ]
[root@hacl-node3 ~]# service salt-minion status
salt-minion (pid 7939) is running...
[root@hacl-node3 ~]# service salt-minion stop
Stopping salt-minion daemon: [ OK ]
[root@hacl-node3 ~]# service salt-minion status
salt-minion (pid 8073) is running...
这样我们就建立了1个高可用的服务。比如zookeeper-server进程。都可以用这类方式管理起来。