Я использую 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 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
Что мне не хватает? Какие-либо предложения ?
Systemd использует фиксированный путь поиска и настоятельно рекомендует использовать полные пути для исполняемых файлов.
Из systemd.exec
страница руководства:
Systemd uses a fixed value of
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin.
Лучшее решение - использовать полный путь к исполняемому файлу java в вашем service.sh
сценарий.