Проблема загрузки библиотек C ++ в системный сервисный модуль - PullRequest
0 голосов
/ 09 ноября 2019

Я разработал программу на C ++, которая использует libcppkafka.so.0.2 в качестве библиотеки C ++. Я могу без проблем запустить скомпилированный файл, а также файл сценария bash, который содержит команду при использовании терминала командной строки. Кроме того, я создал служебный модуль systemd в Centos 7 для запуска программы в качестве службы, однако путь к библиотеке C ++ недопустим и статус службы изменяется на «основной процесс завершен, код = завершен, status = 127 / n»/ a »из-за следующей ошибки:

« ошибка при загрузке общих библиотек: libcppkafka.so.0.2: невозможно открыть общий объектный файл: нет такого файла или каталога »

Поскольку« /usr / local / lib "не известен как параметр среды PATH, я уже пытался добавить PATH в среду systemd, но это не помогло. Libcppkafka.so.0.2 находится в "/ usr / local / lib", и это допустимый путь в консольной среде.

[Unit]
Description=Example systemd service.
After=network.target

[Service]
Type=simple
User=root
Group=root
Environment="PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/java/bin:/usr/local/lib"
Environment="LD_LIBRARY_PATH=/usr/local/lib"
ExecStart=/bin/bash /usr/bin/myservice.sh

[Install]
WantedBy=multi-user.target
...