Zookeeper 服务无法使用“Type=forking”从 systemd 启动,但需要手动运行

问题描述 投票:0回答:1

我有一个 Zookeeper 服务,我正在尝试使用 systemd 来管理它。服务定义如下:

[Unit]
Description=Zookeeper Daemon
Documentation=http://zookeeper.apache.org
Requires=network.target
After=network.target

[Service]    
Type=forking
WorkingDirectory=/opt/zookeeper
User=zookeeper
Group=zookeeper
ExecStart=/opt/zookeeper/bin/zkServer.sh start /opt/zookeeper    /conf/zoo.cfg
ExecStop=/opt/zookeeper/bin/zkServer.sh stop /opt/zookeeper/conf/zoo.cfg
ExecReload=/opt/zookeeper/bin/zkServer.sh restart /opt/zookeeper    /conf/zoo.cfg
TimeoutSec=30
Restart=on-failure

[Install]
WantedBy=default.target

当我尝试使用 systemctl 启动服务时,出现以下错误:

 zookeeper.service: Main process exited, code=exited,                      status=3/NOTIMPLEMENTED zookeeper.service: Failed with result 'exit-code'.

但是,当我手动运行 zkServer.sh 脚本时,Zookeeper 启动时没有任何问题: /opt/zookeeper/bin/zkServer.sh 启动 /opt/zookeeper/conf/zoo.cfg

我怀疑这个问题可能与 systemd 服务文件中的 Type=forking 指令有关,但我不确定如何解决它。

有人以前遇到过这个问题或对如何解决它有建议吗?

google-cloud-platform debian apache-zookeeper
1个回答
0
投票

该问题已获得许可,以下解决了该问题

sudo chown zk:zk /data/zookeeper sudo chown -R zk:zk /data/zookeeper/version-2

sudo chown zk:zk /opt/zookeeper/logs/

sudo chown zk:zk /opt/zookeeper

© www.soinside.com 2019 - 2024. All rights reserved.