在 CentOS 上让 ZooKeeper 开机自启,常见有三种方式,按推荐程度说明:
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
systemctl daemon-reload
systemctl enable zookeeper
systemctl start zookeeper
systemctl status zookeeper
vi /etc/rc.d/rc.local
添加:
/opt/zookeeper/bin/zkServer.sh start
chmod +x /etc/rc.d/rc.local
⚠ 注意:
rc.local 不执行chkconfig --add zookeeper
chkconfig zookeeper on
需要写 SysV 脚本,现在基本不用了。
myid 文件必须存在(dataDir/myid)server.x 配置正确如果你愿意,可以告诉我:
我可以帮你定制一份可直接用的 zookeeper.service 文件。