在 CentOS 上设置 ZooKeeper 开机自启,常见有两种方式:systemd(推荐,CentOS 7+) 和 rc.local(简单但不推荐生产)。下面分别说明。
/opt/zookeeper/opt/zookeeper/conf/zoo.cfgJAVA_HOME 已知(如 /usr/java/jdk1.8.0_201)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-failure
User=root
[Install]
WantedBy=multi-user.target
如果你用普通用户运行,把
User=root改成对应用户名,并确保目录权限正确。
systemctl daemon-reload
systemctl enable zookeeper
systemctl start zookeeper
systemctl status zookeeper
# 或
/opt/zookeeper/bin/zkServer.sh status
vi /etc/rc.d/rc.local
添加:
export JAVA_HOME=/usr/java/jdk1.8.0_201
/opt/zookeeper/bin/zkServer.sh start
chmod +x /etc/rc.d/rc.local
⚠️ 注意:rc.local 启动顺序不可控,可能在网络未就绪时启动失败。
tail -f /opt/zookeeper/logs/zookeeper-*.out
dataDir 目录下必须有 myid 文件如果你能告诉我:
我可以给你更精确的配置示例。