2016-11-15 37 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啓動前景