2023年11月28日发(作者:)

ZooKeeper设置开机启动

1 init.d⽬录下新建脚本⽂件

进⼊到/etc/rc.d/init.d⽬录下,命令是:

cd /etc/rc.d/init.d

新建⼀个名为zookeeper的⽂件,命令是:

touch zookeeper

如图:

1.1⽂件内容的第⼀种⽅案(推荐)

使⽤vim命令修改⽂件内容,⽂件内容的写法有很多,除了上⾯的第⼀种⽅案,⽤下⾯的这种也可以:

#!/bin/bash

#chkconfig: 2345 10 90

#description: service zookeeper

export JAVA_HOME=/opt/java/jdk1.8.0_121

export ZOO_LOG_DIR=/opt/zookeeper/log

ZOOKEEPER_HOME=/opt/zookeeper/zookeeper-3.4.10

su root ${ZOOKEEPER_HOME}/bin/ "$1"

1.2⽂件内容的第⼆种⽅案

使⽤vim命令修改⽂件内容,⽂件内容是:

#!/bin/bash

#chkconfig: 2345 10 90

#description: service zookeeper

export JAVA_HOME=/usr/java/jdk1.7.0_45

export ZOOKEEPER_HOME=/usr/local/zookeeper/zookeeper-3.4.6

case "$1" in

start) su root ${ZOOKEEPER_HOME}/bin/ start;;

start-foreground) su root ${ZOOKEEPER_HOME}/bin/ start-foreground;;

stop) su root ${ZOOKEEPER_HOME}/bin/ stop;;

status) su root ${ZOOKEEPER_HOME}/bin/ status;;

restart) su root ${ZOOKEEPER_HOME}/bin/ restart;;

upgrade)su root ${ZOOKEEPER_HOME}/bin/ upgrade;;

print-cmd)su root ${ZOOKEEPER_HOME}/bin/ print-cmd;;

*) echo "requirestart|start-foreground|stop|status|restart|print-cmd";;

esac

1.3 其他说明

注意1:新建⽂件的命令是touch,编辑⽂件的命令⽤vivim都⾏。如果不会使⽤vivim命令,直接在本地把⽂件编辑好,然后⽤远程

⼯具上载上去都⾏,不过需要注意的是如果本地⽤的windows系统,需要把⽂件转为UNIX格式。转换⼯具有很多,例如使⽤Notepad++

如图:

注意2:两个⽅案中的⽂件头部#注释的部分不能少,⽽且⽂件中诸如JDK路径,zookeeper路径都需要修改为你⾃⼰的。

2.1 执⾏⼀系列命令

为新建的/etc/rc.d/init.d/zookeeper⽂件添加可执⾏权限,命令是:

chmod +x /etc/rc.d/init.d/zookeeper

zookeeper这个脚本添加到开机启动项⾥⾯,命令是:

chkconfig --add zookeeper

如图:

如果想看看是否添加成功,命令是:

chkconfig --list

如图:

2.2执⾏测试看是否开机启动

使⽤命令重启机器,命令是:

reboot

⽅法⼀

查看zookeeper的状态

重启机器,然后不⼿动启动zookeeper的情况下,执⾏命令:

service zookeeper status

servicezookeeper does not support chkconfig

问题原因和解决:

/etc/rc.d/init.d/ zookeeper脚本中头部没有添加下⾯这⼏句话(description可以随便写)

#!/bin/bash

#chkconfig:2345 10 90

#description:service zookeeper

Error contacting service. It is probably not running

执⾏service zookeeper status报错:

JMX enabled by default

Usingconfig: /opt/zookeeper/zookeeper-3.4.10/bin/../conf/

Errorcontacting service. It is probably not running.

问题原因和解决:

/etc/rc.d/init.d/ zookeeper没有配置对,请看3.1.13.1.2的配置,⾥⾯必须要有export JAVA_HOME这⼀句话,后⾯的路径是你⾃⼰

JDK安装路径。

⾄于export ZOO_LOG_DIR=/opt/zookeeper/log这⼀句的话可有可⽆,意思是指定zookeeper的启动⽇志存放⽬录,如果该⽬录不存

在,你必须⼿动创建⼀个。