You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tomcat9通过systemctl启动时server.xml环境变量替换失效,脚本启动正常的问题求助

Tomcat9通过systemctl启动时server.xml环境变量替换失效,脚本启动正常的问题求助

各位大佬好,我遇到一个Tomcat9的奇怪问题,折腾了好久没搞定,想请教下大家:

我正在尝试在conf/server.xml中使用环境变量来配置端口,按照Tomcat官方文档的指引做了以下配置:

  1. 在conf/server.xml里配置了环境变量引用:
...
redirectPort="${tomcat_redir}"
...
  1. 系统中已经设置了对应的环境变量,终端执行env | grep tomcat_redir能看到输出:
8443
  1. 我把环境变量源的配置追加到了conf/catalina.properties中:
echo "org.apache.tomcat.util.digester.PROPERTY_SOURCE=org.apache.tomcat.util.digester.EnvironmentPropertySource" >> conf/catalina.properties

做完这些后,我遇到了诡异的情况:

  • 用Tomcat自带的bin/shutdown.sh和bin/startup.sh脚本重启服务后,测试curl -Ik https://10.0.0.1:8443能正常返回200,符合预期
  • 但用systemctl restart tomcat.service重启服务后,curl -Ik https://10.0.0.1:8443返回curl (7) Failed to connect on 10.0.0.1 port 8443: Connection refused,只有curl -I http://10.0.0.1:8080能正常返回200

我还尝试修改了/etc/systemd/system/tomcat.service文件,把环境变量源的参数直接加到CATALINA_OPTS里:

Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC -Dorg.apache.tomcat.util.digester.PROPERTY_SOURCE=org.apache.tomcat.util.digester.EnvironmentPropertySource"

执行systemctl daemon-reload后重启服务,问题依然存在。

以下是我的tomcat.service完整配置:

[Unit]
Description=Tomcat9
After=syslog.target network.target

[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"
Environment="CATALINA_PID=/var/tomcat/%i/run/tomcat.pid"
Environment="CATALINA_BASE=/var/tomcat/%i/"
Environment="CATALINA_HOME=/opt/tomcat/"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
#RestartSec=10
#Restart=always

[Install]
WantedBy=multi-user.target

我实在搞不懂为什么两种启动方式会有差异,明明配置都做了,有没有大佬能指点下问题出在哪?

备注:内容来源于stack exchange,提问作者toto rrro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 12:40:28