Systemctl: Java не найден! при использовании systemctl

Я использую CentOs 7.5.1804 и у меня проблема с сервисом. Когда я запускаю свой сервис с помощью systemctl, происходит сбой с сообщением

which: no java in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin)
Java not found!

После сообщения об ошибке я сделал, какой Java

и он возвращается

which: no java in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin)
Java not found!

Но когда я захожу в систему как пользовательское приложение, я получаю отзыв от java -version

java version "1.8.0_161" 
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

Вот фрагмент моего сервиса, расположенный в /etc/systemd/system

[Service]
Type=forking
User=app
Group=app
ExecStart=/opt/div/ui/bin/service.sh -s start -t myserver
ExecStop=/opt/div/ui/bin/service.sh -s stop -t myserver
SuccessExitStatus=143
TimeoutStartSec=0
TimeoutStopSec=240
#install
[Install]
WantedBy=multi-user.target

Что я скучаю? Какие-либо предложения?

1 ответ

Systemd использует фиксированный путь поиска и настоятельно рекомендует использовать полные пути для исполняемых файлов.

От systemd.exec справочная страница:

Systemd uses a fixed value of
       /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin.

Лучшее решение - использовать полный путь к исполняемому файлу Java в вашем service.sh скрипт.

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