红联Linux门户
Linux帮助

daemontools安装和使用

发布时间:2015-11-03 10:16:42来源:linux网站作者:cheungmine

daemontools用于自动重启进程。当某个关键服务进程崩溃,可以利用daemontools启动它。前提是安装并配置它。比如zookeeper服务,作为一个关键服务,崩溃后必须重启。下面介绍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 

检查一下服务是否启动:

# ps -ef | grep svscanboot 

root  1618 1  0 23:37 ?00:00:00 /bin/sh /command/svscanboot
root  3992  1911  0 23:51 pts/000:00:00 grep svscanboot


3.添加监控的服务

经过以上步骤,我们已经配置好daemontools. 下面添加我们要监控的服务。例如salt-minion。使用下面的命令控制服务:

# service salt-minion status|stop|start|restart 


配置一个服务非常简单:

1)创建一个目录,目录下放一个run脚本

2)run脚本执行启动服务的命令

3)建立/service下一个链接


整个过程如下:

# 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 


神奇的就是最后一句,一旦创建了链接,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... 


这样我们就建立了一个高可用的服务。比如zookeeper-server进程。都可以用这种方式管理起来。