第一種:直接修改/etc/rc.d/rc.local檔案

在/etc/rc.d/rc.local檔案中需要輸入兩行,其中export JAVA_HOME=/usr/java/jdk1.8.0_112是必須要有的,否則開機啟動不成功,大家根據自己JDK安裝的位置自行更改。另一行/usr/local/zookeeper-3.4.5/bin/zkServer.sh start則是我們zookeeper的啟動命令。配置好之後,重啟虛擬機器,會發現已經可以開機自啟了。

[[email protected] ~]# vim /etc/rc.d/rc.local 
 
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
 
touch /var/lock/subsys/local
export JAVA_HOME=/usr/java/jdk1.8.0_112
/usr/local/zookeeper-3.4.5/bin/zkServer.sh start

第二種:把zookeeper做成服務

1、進入到/etc/rc.d/init.d目錄下,新建一個zookeeper指令碼

[[email protected] ~]# cd /etc/rc.d/init.d/
[[email protected] init.d]# pwd
/etc/rc.d/init.d
[[email protected] init.d]# touch zookeeper

2、給指令碼新增執行許可權 [[email protected] init.d]# chmod +x zookeeper

3、使用命令vim zookeeper進行編輯,在指令碼中輸入如下內容,其中同上面注意事項一樣要新增export JAVA_HOME=//usr/java/jdk1.8.0_112這一行,否則無法正常啟動。

[[email protected] init.d]# vim zookeeper 
 
#!/bin/bash
#chkconfig:2345 20 90
#description:zookeeper
#processname:zookeeper
export JAVA_HOME=//usr/java/jdk1.8.0_112
case $1 in
        start) su root /usr/local/zookeeper-3.4.5/bin/zkServer.sh start;;
        stop) su root /usr/local/zookeeper-3.4.5/bin/zkServer.sh stop;;
        status) su root /usr/local/zookeeper-3.4.5/bin/zkServer.sh status;;
        restart) su /usr/local/zookeeper-3.4.5/bin/zkServer.sh restart;;
        *) echo "require start|stop|status|restart" ;;
esac

4、使用service zookeeper start/stop命令來嘗試啟動關閉zookeeper,使用service zookeeper status檢視zookeeper狀態。 先來看啟動及狀態

[[email protected] init.d]# service zookeeper start
JMX enabled by default
Using config: /usr/local/zookeeper-3.4.5/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[[email protected] init.d]# service zookeeper status
JMX enabled by default
Using config: /usr/local/zookeeper-3.4.5/bin/../conf/zoo.cfg
Mode: standalone
[[email protected] init.d]#

接著看關閉及狀態

[[email protected] init.d]# service zookeeper stop
JMX enabled by default
Using config: /usr/local/zookeeper-3.4.5/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED
[[email protected] init.d]# service zookeeper status
JMX enabled by default
Using config: /usr/local/zookeeper-3.4.5/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
[[email protected] init.d]#

5、新增到開機自啟

[[email protected] init.d]# chkconfig --add zookeeper

新增完之後,我們使用chkconfig --list來檢視開機自啟的服務中是否已經有我們的zookeeper了,如下所示,可以看到在最後一行便是我們的zookeeper服務了。

[[email protected] init.d]# chkconfig --list
auditd         	0:關閉	1:關閉	2:啟用	3:啟用	4:啟用	5:啟用	6:關閉
blk-availability	0:關閉	1:啟用	2:啟用	3:啟用	4:啟用	5:啟用	6:關閉
crond          	0:關閉	1:關閉	2:啟用	3:啟用	4:啟用	5:啟用	6:關閉
ip6tables      	0:關閉	1:關閉	2:啟用	3:啟用	4:啟用	5:啟用	6:關閉
iptables       	0:關閉	1:關閉	2:啟用	3:啟用	4:啟用	5:啟用	6:關閉
iscsi          	0:關閉	1:關閉	2:關閉	3:啟用	4:啟用	5:啟用	6:關閉
iscsid         	0:關閉	1:關閉	2:關閉	3:啟用	4:啟用	5:啟用	6:關閉
lvm2-monitor   	0:關閉	1:啟用	2:啟用	3:啟用	4:啟用	5:啟用	6:關閉
mdmonitor      	0:關閉	1:關閉	2:啟用	3:啟用	4:啟用	5:啟用	6:關閉
multipathd     	0:關閉	1:關閉	2:關閉	3:關閉	4:關閉	5:關閉	6:關閉
netconsole     	0:關閉	1:關閉	2:關閉	3:關閉	4:關閉	5:關閉	6:關閉
netfs          	0:關閉	1:關閉	2:關閉	3:啟用	4:啟用	5:啟用	6:關閉
network        	0:關閉	1:關閉	2:啟用	3:啟用	4:啟用	5:啟用	6:關閉
postfix        	0:關閉	1:關閉	2:啟用	3:啟用	4:啟用	5:啟用	6:關閉
rdisc          	0:關閉	1:關閉	2:關閉	3:關閉	4:關閉	5:關閉	6:關閉
restorecond    	0:關閉	1:關閉	2:關閉	3:關閉	4:關閉	5:關閉	6:關閉
rsyslog        	0:關閉	1:關閉	2:啟用	3:啟用	4:啟用	5:啟用	6:關閉
saslauthd      	0:關閉	1:關閉	2:關閉	3:關閉	4:關閉	5:關閉	6:關閉
sshd           	0:關閉	1:關閉	2:啟用	3:啟用	4:啟用	5:啟用	6:關閉
udev-post      	0:關閉	1:啟用	2:啟用	3:啟用	4:啟用	5:啟用	6:關閉
zookeeper      	0:關閉	1:關閉	2:啟用	3:啟用	4:啟用	5:啟用	6:關閉

開機自啟配置好了,我們重啟一下試試,如下所示。一切正常!!說明我們的開機自啟動成功了。

[[email protected] ~]# /usr/local/zookeeper-3.4.5/bin/zkServer.sh status
JMX enabled by default
Using config: /usr/local/zookeeper-3.4.5/bin/../conf/zoo.cfg
Mode: standalone