温馨提示×

centos如何设置zookeeper开机启动

小樊
41
2026-09-30 13:23:34
栏目: 智能运维

在 CentOS 上设置 ZooKeeper 开机自启,常见有三种方式:


方式一:使用 systemd(推荐,CentOS 7+)

1. 假设环境

  • ZooKeeper 安装目录:/opt/zookeeper
  • 配置文件:/opt/zookeeper/conf/zoo.cfg
  • Java 已安装,且 JAVA_HOME 已知(如 /usr/java/jdk1.8.0_201)

2. 创建 systemd 服务文件

vi /etc/systemd/system/zookeeper.service

内容示例:

[Unit]
Description=Apache ZooKeeper
After=network.target

[Service]
Type=forking
Environment=JAVA_HOME=/usr/java/jdk1.8.0_201
ExecStart=/opt/zookeeper/bin/zkServer.sh start
ExecStop=/opt/zookeeper/bin/zkServer.sh stop
Restart=on-abnormal
User=root

[Install]
WantedBy=multi-user.target

若使用普通用户运行,把 User=root 改成对应用户名

3. 重载并启用

systemctl daemon-reload
systemctl enable zookeeper
systemctl start zookeeper

4. 查看状态

systemctl status zookeeper

方式二:使用 rc.local(简单但不推荐)

1. 编辑 rc.local

vi /etc/rc.d/rc.local

添加:

export JAVA_HOME=/usr/java/jdk1.8.0_201
/opt/zookeeper/bin/zkServer.sh start

2. 赋予执行权限

chmod +x /etc/rc.d/rc.local

⚠️ CentOS 7 默认 rc.local 不执行,必须加执行权限


方式三:使用 chkconfig(旧版 CentOS 6)

  1. 编写启动脚本到 /etc/init.d/zookeeper
  2. 添加:
chkconfig --add zookeeper
chkconfig zookeeper on

验证是否开机自启

重启服务器后执行:

/opt/zookeeper/bin/zkServer.sh status

如果你告诉我:

  • CentOS 版本(6 / 7 / 8)
  • ZooKeeper 安装路径
  • 是否使用普通用户

我可以帮你写一份完全可用的启动脚本。

0 踩