温馨提示×

centos zookeeper如何设置开机自启

小樊
44
2026-10-18 03:03:45
栏目: 智能运维

在 CentOS 上让 ZooKeeper 开机自启,常见有三种方式,按推荐程度说明:


方式一(推荐):使用 systemd(CentOS 7/8/Stream)

1. 创建 systemd 服务文件

vi /etc/systemd/system/zookeeper.service

示例内容(按你实际路径修改):

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

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

[Install]
WantedBy=multi-user.target

如果 ZooKeeper 安装在 /usr/local/zookeeper,请对应修改路径
如果不用单独用户,可去掉 User/Group

2. 重载并启用

systemctl daemon-reload
systemctl enable zookeeper
systemctl start zookeeper

3. 验证

systemctl status zookeeper

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

1. 编辑 rc.local

vi /etc/rc.d/rc.local

添加:

/opt/zookeeper/bin/zkServer.sh start

2. 赋执行权限

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

⚠ 注意:

  • CentOS 7+ 默认 rc.local 不执行
  • 仅适合测试环境

方式三:使用 chkconfig(老方式,CentOS 6)

chkconfig --add zookeeper
chkconfig zookeeper on

需要写 SysV 脚本,现在基本不用了。


常见坑提醒

  1. JAVA_HOME 必须配置
  2. myid 文件必须存在(dataDir/myid)
  3. 防火墙/SELinux 可能影响启动
  4. 集群环境要确保 server.x 配置正确

如果你愿意,可以告诉我:

  • CentOS 版本
  • ZooKeeper 安装路径
  • 是否集群

我可以帮你定制一份可直接用的 zookeeper.service 文件。

0 踩