在systemd(CentOS7)自启动zookeeper

时间:2024-08-01 21:33:20

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/