2016-11-15 38 views
0

我创建了以下systemd服务脚本运行动物园管理员使用Ansible:Systemd动物园管理员服务未能

[Unit] 
Description=ZooKeeper 

[Service] 
User=root 
Type=forking 
User=zookeeper 
Group=zookeeper 
ExecStart=/tmp/zookeeper-3.4.9/bin/zkServer.sh start 
ExecStop=/tmp/zookeeper-3.4.9/bin/zkServer.sh stop 

TimeoutSec=300 

[Install] 
WantedBy=multi-user.target 

但是,试图运行使用sudo service zookeeper start我得到以下错误的脚本:

Nov 15 22:00:35 sharedservicesprovider systemd[1]: Starting ZooKeeper... 
-- Subject: Unit zookeeper.service has begun start-up 
-- Defined-By: systemd 
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel 
-- 
-- Unit zookeeper.service has begun starting up. 
Nov 15 22:00:35 sharedservicesprovider systemd[15287]: zookeeper.service: Failed at step USER spawning /tmp/zookeeper-3.4.9/bin/zkServer.sh: No such process 
-- Subject: Process /tmp/zookeeper-3.4.9/bin/zkServer.sh could not be executed 
-- Defined-By: systemd 
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel 
-- 
-- The process /tmp/zookeeper-3.4.9/bin/zkServer.sh could not be executed and failed. 
-- 
-- The error number returned by this process is 3. 
Nov 15 22:00:35 sharedservicesprovider systemd[1]: zookeeper.service: Control process exited, code=exited status=217 
Nov 15 22:00:35 sharedservicesprovider systemd[1]: Failed to start ZooKeeper. 
-- Subject: Unit zookeeper.service has failed 
-- Defined-By: systemd 
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel 

任何提示为什么我无法正确启动Zookeeper,因为我对系统服务相当陌生?

+0

我想知道systemsd将采取类似'开始参数在'.sh'之后? – Jet

回答

0

这听起来像基础来检查我 第一,确保该文件存在

ls -ltrah /tmp/zookeeper-3.4.9/bin/zkServer.sh 

,如果它没有找到您提取动物园管理员启动脚本。在我的情况下,这是/opt/kafka/bin/zookeeper-server-start.sh

然后验证您所指定的用户(您所指定的两个用户,rootzookeeper。我假设的最后一个值是什么是有效的/需要的话)可以访问脚本并具有可执行对它的权利。

这将分别通过chownchmod命令完成。

0

也许这么晚了......但使用尽可能ExecStart:

/tmp/zookeeper-3.4.9/bin/zkServer.sh启动前景