使用 systemctl 时,Systemctl:未找到 Java!

使用 systemctl 时,Systemctl:未找到 Java!

我在用CentOs 7.5.1804并且服务有问题。当我使用系统控制它失败并显示以下消息

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

我错过了什么?有什么建议吗?

答案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

相关内容