作为服务运行 wso2server.sh 时,错误 JAVA_HOME 定义不正确

Error JAVA_HOME is not defined correctly when runnin wso2server.sh as a service

我已经在 Cent 上部署了 WSO2 APIMos 7. Carbon 启动正常,直到它作为服务安装。 WSO2 手册仅针对 Ubuntu-like os https://docs.wso2.com/display/AM260/Installing+as+a+Linux+Service

1 分os 我创建了服务文件:

[Unit]

Description=WSO2 API Manager Server daemon
After=network.target

    [Service]
    Type=forking
    PIDFile=<API-M_HOME>/wso2carbon.pid
    ExecStart=<API-M_HOME>/bin/wso2server.sh start
    ExecReload=<API-M_HOME>/bin/wso2server.sh restart
    ExecStop=<API-M_HOME>/bin/wso2server.sh stop

    [Install]
    WantedBy=multi-user.target

并且我在 /etc/profile 中设置了变量:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64/jre
export PATH=$JAVA_HOME/bin:$PATH

echo $JAVA_HOME returns 子目录 bin 和 lib 的正确路径,我可以用简单的

启动 WSO2APIM
sh wso2server.sh

所以,这再次验证拍拍设置正确。 运行:

systemctl start wso2apimanager.service

returns:

Feb 05 17:10:57 gwkm1 systemd[1]: Starting WSO2 API Manager Server daemon...
Feb 05 17:10:57 gwkm1 wso2server.sh[5265]: Error: JAVA_HOME is not defined correctly.
Feb 05 17:10:57 gwkm1 wso2server.sh[5265]: CARBON cannot execute java

我没思路了,你呢?

在你的服务中,像这样修改你的 ExecStart :

ExecStart=/bin/bash -c 'JAVA_HOME=/YOURJAVAPATH sh <API-M_HOME>/bin/wso2server.sh start'

与您的 ExecRestart 相同。