Сбой службы 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