我正在尝试在 CentOS 7 上使用 Systemd 设置 Tomcat 服务。
我已经安装了 Oracle Java 1.8u74/usr/java/jdk1.8.0_74并$JAVA_HOME在启动时设置了环境变量,如下所示:
# echo "export JAVA_HOME=/usr/java/jdk1.8.0_74" > /etc/profile.d/setenv.sh
Run Code Online (Sandbox Code Playgroud)
当我登录系统时,我可以运行echo $JAVA_HOME并查看正确的路径。我已经安装了 Tomcat 并且该tomcat.service文件具有以下内容:
# Systemd unit file for Tomcat
[Unit]
Description=Apache Tomcat
After=syslog.target network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/java/jdk1.8.0_74
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
User=tomcat
Group=www
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
问题是,如果我省略读取的行Environment=JAVA_HOME=/usr/java/jdk1.8.0_74,Tomcat 找不到 $JAVA_HOME,但我希望它找到 $JAVA_HOME,因为它设置在/etc/profile.d/setenv.sh.
setenv.sh错地方了?