Сбой службы Systemd Zookeeper

Я создал следующий служебный скрипт systemd для запуска Zookeeper с использованием Ansible:

[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 должным образом, так как я довольно плохо знаком с системными службами?

4 ответа

Может быть, так поздно... но использовать как ExecStart:

/tmp/zookeeper-3.4.9/bin/zkServer.sh start-foreground

[Unit]
Description=Zookeeper
After=syslog.target
[Service]
Environment=ZOO_LOG_DIR=/zookeeper/logs
SyslogIdentifier=zookeeper
TimoutStartSec=10min
Type=forking
User=zookeeper
Group=zookeeper
ExecStart=/zookeeper/bin/zkServer.sh start
ExecStop=/zookeeper/bin/zkServer.sh stop
[Install]
WantedBy=multi-user.target

ZOO_LOG_DIR для разрешения требуется

Это звучит как основы, чтобы сначала проверить мне, убедитесь, что файл существует

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

если он не находит, где вы извлекли скрипт запуска zookeeper. В моем случае это /opt/kafka/bin/zookeeper-server-start.sh

Затем убедитесь, что указанный вами пользователь (вы указали двух пользователей, root а также zookeeper, Я предполагаю, что последнее значение является тем, что является действительным / желательным) может получить доступ к сценарию и имеет права на исполняемый файл.

Это будет сделано с chown а также chmod команды соответственно.

Я столкнулся с аналогичной проблемой, но нигде не было сообщений об ошибках с указанием причины сбоя. Проблема была связана с недавним изменением, которое я внес вzoo.cfgфайл.

Проблема

После URL-адреса сервера было лишнее пространство, которое не было видно невооруженным глазом, но я заметил, что курсор Vim переместился на 1 дополнительный символ.

server.1:vmname.domain.com:2888:3888

Обратите внимание на дополнительное пространство в конце.

Ошибок о неправильном имени сервера в журнале не было, но после удаления пробела у меня запустился сервис Zookeeper.

systemctl restart zookeeper.service

Другие вопросы по тегам