基于ubuntu14环境: 下面是完整方案
1. 在服务目录添加脚本
cd /etc/init.d/ ;vim zookeeper
2. 代码
#!/bin/sh
#Configurations injected by install_server below....
EXEC=/usr/local/zookeeper/bin/zkServer.sh
ZOO_LOG_DIR="/data/zookeeper"
JAVA_HOME=/usr/lib/jvm/jdk1.8.0_65
PATH=${JAVA_HOME}/bin:$PATH
###############
# SysV Init Information
# chkconfig: - 58 74
# description: zookeeper is the zookeeper daemon.
### BEGIN INIT INFO
# Provides: zookeeper
# Required-Start: $network $local_fs $remote_fs
# Required-Stop: $network $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Should-Start: $syslog $named
# Should-Stop: $syslog $named
# Short-Description: start and stop zookeeper
# Description: zookeeper daemon
### END INIT INFO
case $1 in
start) /usr/local/zookeeper/bin/zkServer.sh start;;
stop) /usr/local/zookeeper/bin/zkServer.sh stop;;
status) /usr/local/zookeeper/bin/zkServer.sh status;;
restart) /usr/local/zookeeper/bin/zkServer.sh restart;;
*) echo "require start|stop|status|restart" ;;
esac
添加执行权限
chmod +x zookeeper
3.配置开机项的工具
sudo apt-get install rcconf
4.用rcconf命令,在工具里面把zookeeper勾上即可
最郁闷的bug就是配置后看boot.log是启动成功但是进程不在。 最后分析到的原因是引入java_home 和path这里。
当java_home 配置在/etc/profile 或者账号bashrc的时候,系统boot是加载不到的 。 所以依赖java的服务启动都会有问题。 加上即可