Не удается запустить службу Zookeeper на CentOS7 - PullRequest
0 голосов
/ 02 апреля 2020

При попытке запустить службу zookeeper я получаю следующее

● zookeeper.service
   Loaded: loaded (/etc/systemd/system/zookeeper.service; disabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Thu 2020-04-02 16:19:24 EDT; 5min ago
  Process: 5201 ExecStop=/usr/local/kafka/kafka_2.13-2.4.1/bin/zookeeper-server-stop.sh (code=exited, status=1/FAILURE)
  Process: 4882 ExecStart=/usr/local/kafka/kafka_2.13-2.4.1/bin/zookeeper-server-start.sh /usr/local/kafka/kafka_2.13-2.4.1/config/zookeeper.properties (code=exited, status=127)
 Main PID: 4882 (code=exited, status=127)

Apr 02 16:19:24 centos.localdomain systemd[1]: Started zookeeper.service.
Apr 02 16:19:24 centos.localdomain systemd[1]: zookeeper.service: main process exited, code=exited, status=127/n/a
Apr 02 16:19:24 centos.localdomain systemd[1]: zookeeper.service: control process exited, code=exited status=1
Apr 02 16:19:24 centos.localdomain systemd[1]: Unit zookeeper.service entered failed state.
Apr 02 16:19:24 centos.localdomain systemd[1]: zookeeper.service failed.

Файл zookeeper.service настраивается следующим образом

[Unit]
Requires=network.target remote-fs.target
After=network.target remote-fs.target

[Service]
Type=simple
User=specadmin
ExecStart=/usr/local/kafka/kafka_2.13-2.4.1/bin/zookeeper-server-start.sh  /usr/local/kafka/kafka_2.13-2.4.1/config/zookeeper.properties
ExecStop=/usr/local/kafka/kafka_2.13-2.4.1/bin/zookeeper-server-stop.sh
Restart=on-abnormal

[Install]
WantedBy=multi-user.target

При попытке запустить zookeeper вручную с тем же пользователем настроено в сервисном файле все отлично работает.

Посоветуйте пожалуйста

1 Ответ

0 голосов
/ 03 апреля 2020

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

Systemd использует фиксированную переменную $ PATH и изменения, которые вносятся в / etc / profile / etc / bashr c и подобное не применяется к systemd.

Zookeeper запускает java, который должен быть частью пути поиска, но поскольку systemd не использует файлы, для которых задан путь поиска, сценарий запуска zookeeper не может find java.

Я решил эту проблему, переопределив путь поиска, добавив параметр Environment = PATH = ... в служебный файл zookeeper и добавив все необходимые каталоги.

...