【发布时间】:2018-03-12 16:26:27
【问题描述】:
目前我的应用程序能够使用两种策略解析应用程序属性:
- 内部:此策略将使用代码库中的
application.properites文件。 - 外部属性:此策略可以使用
application.properites文件,以防它存在于tomcat级别的config文件夹中。
例如:如果tomcat以以下方式启动/opt/tomcat/bin/startup.sh。代码将通过以下路径查找外部属性/opt/tomcat/bin/config/application.properites
如果应用程序以 sh /opt/tomcat/bin/startup.sh 以下方式启动,此方法可以正常工作,但它不适用于 systemd 单元 tomcat 文件 service tomcat start。
有/etc/systemd/system/tomcat.service单元文件的内容
# Systemd unit file for tomcat
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target
[Service]
Type=forking
Environment=JAVA_HOME=/opt/java
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=/bin/kill -15 $MAINPID
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
我尝试将我的配置文件夹复制到/etc/systemd/system/,但它仍然不起作用。
关于使用 systemd 脚本的 config 文件夹的正确路径的任何想法。
【问题讨论】:
-
以什么方式不起作用?你得到什么错误?
-
我刚刚修好了。当我使用以下命令 service tomcat start 启动 tomcat 时,它不起作用。实际上没有加载外部属性文件,而是使用了内部属性。
标签: java tomcat systemd properties-file