daemontools(http://cr.yp.to/daemontools.html)是一个管理UNIX下服务的工具集。supervise监视一个服务。它启动一个服务、当服务停掉时它会重起服务。

Zookeeper在运行过程中,如果出现一些无法处理的异常,会直接退出进程,也就是所谓的快速失败(fail fast)模式。daemontools 能够帮助你监控ZK进程,一旦进程退出后,能够自动重启进程,从而使down掉的机器能够重新加入到集群中去。

安装daemontools

mkdir /package
chmod 755 /package
cd /package
wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
tar zxf daemontools-0.76.tar.gz
cd admin/daemontools-0.76
vim src/error.h 找到:extern int errno; 改成:#include <errno.h>
package/install

监控Zookeeper

在/service下,新建文件夹zookeeper,新建run文件:

cd /service
mkdir zookeeper
cd zookeeper
vim run
chmod 755 run

run内容:

#!/bin/bash
exec 2>&1
exec /zk/zookeeper-3.4.4/bin/zkServer.sh start

运行:

supervise /service/zookeeper
//或者可以用nohup以后台方式运行。如下:
nohup supervise /service/zookeeper &

如果出现
supervise: fatal: unable to acquire /service/zookeeper/supervise/lock: temporary failure
快速rm /service/zookeeper/supervise 重新执行 supervise /service/zookeeper 即可

验证监控zookeeper是否成功:

kill zookeeper进程,查看zookeeper的进程是否自动重启

ps -aux|grep Dzookeeper //查看zookeeper的进程

参考文献: http://cr.yp.to/daemontools/faq/create.html

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐