zookeeper的自启动脚本,如果是 sysV 模式(CeontOS6或以下版本),可以直接使用下载版本中的 src 目录下对应的 sysV 自启动包,再chkconfig即可。老方法,简单,就不说了。
基于systemd的脚本搜了很多地方,都没有找到,就自己参考别人的写了一个。
参考1:https://github.com/felixonmars/aur-mirror/blob/fa864c9b4d1bf535e06c63169fb3bb0890a9cf7f/zookeeper/systemd_zookeeper.service
参考2:http://0pointer.de/public/systemd-man/
修正后的版本:使用了一个变量 ZHOME:
[root@master system]# vim /etc/systemd/system/zookeeper.service使用:
[Unit]
Description=Zookeeper service
After=network.target
[Service]
User=hadoop
Group=hadoop
SyslogIdentifier=hadoop
Environment=ZHOME=%h/zookeeper/zookeeper-3.4.6
ExecStart=/usr/bin/java \
-Dzookeeper.log.dir=${ZHOME}/logs/zookeeper.log \
-Dzookeeper.root.logger=INFO,ROLLINGFILE \
-cp ${ZHOME}/zookeeper-3.4.6.jar:${ZHOME}/lib/* \
-Dlog4j.configuration=file:${ZHOME}/conf/log4j.properties \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.local.only=false \
org.apache.zookeeper.server.quorum.QuorumPeerMain \
${ZHOME}/conf/zoo.cfg
[Install]
WantedBy=multi-user.target
重新加载配置信息:systemctl daemon-reload
启动zookeeper:systemctl start zookeeper.service
关掉zookeeper:systemctl stop zookeeper.service
查看进程状态及日志(重要):systemctl status zookeeper.service
开机自启动:systemctl enable zookeeper.service
关闭自启动:systemctl disable zookeeper.service
说明:
如果是要用到您自己的环境,请自己修改对应的地方:
User=hadoop #Linux中启动zookeeper的用户名
Group=hadoop #Linux中启动zookeeper的组名
SyslogIdentifier=hadoop
Environment=ZHOME=%h/zookeeper/zookeeper-3.4.6 #zookeeper 的存放目录
-cp ${ZHOME}/zookeeper-3.4.6.jar :${ZHOME}/lib/* \ #主jar文件,也可以将zookeeper-3.4.6.jar复制到 lib目录,那么这行就只写成 -cp ${ZHOME}/lib/* \ 即可。
%h表示User的Home目录。这里就代表 /home/hadoop
注:最新的文件,会放在 http://git.oschina.net/fkkeee/systemd_startup/ 中进行更新。github暂不更新。
本文链接: http://www.logme.cn/blog/30/zookeeper_start_in_systemd/