网上的各种教程一般建议的操作流程是:
vi /usr/lib/systemd/system/tomcat.service
写入以下内容:
[Unit]
Description=Tomcat 1
After=network.target
[Service]
Type=forking
Environment=JAVA_HOME=/home/jdk1.8.0_131
Environment=CATALINA_PID=/home/tomcat/pid
ExecStart=/home/tomcat/bin/catalina.sh start
ExecReload=/home/tomcat/bin/catalina.sh restart
ExecStop=/home/tomcat/bin/catalina.sh stop
[Install]
WantedBy=multi-user.target
然后执行以下命令:
systemctl enable tomcat.service
但是经测试,完成以上步骤后,通过systemctl start tomcat.service 的时候总是报告以下错误:
Apr 06 14:10:57 hzcqtks.webserver systemd[1]: Starting Tomcat 1...
Apr 06 14:10:57 hzcqtks.webserver catalina.sh[9593]: Neither the JAVA_HOME nor the JRE_HOME environment variable is defined。At least one of these environment variable is needed to run this program
Apr 06 14:10:57 hzcqtks.webserver catalina.sh[9593]: At least one of these en...
Apr 06 14:10:57 hzcqtks.webserver systemd[1]: tomcat.service: contro...1
Apr 06 14:10:57 hzcqtks.webserver systemd[1]: Failed to start Tomcat
反复尝试,在/root/.bash_profile 或/home/tomcat/bin/catalina.sh 或 /home/tomcat/bin/setclasspath.sh 文件中增加:
export JAVA_HOME=/home/jdk1.8.0_131
都没办法解决问题。
最后的解决方案是:
vi /etc/profile.d/setenv.sh
写入以下内容:
export JAVA_HOME=/home/jdk1.8.0_131
保存退出。
vi /usr/lib/systemd/system/tomcat.service
写入以下内容:
[Unit]
Description=Tomcat 1
After=network.target
[Service]
Type=forking
Environment=CATALINA_PID=/home/tomcat/pid
ExecStart=/bin/sh -c '. /etc/profile.d/setenv.sh; /home/tomcat/bin/startup.sh'
ExecReload=/bin/sh -c '. /etc/profile.d/setenv.sh; /home/tomcat/bin/shutdown.sh; /home/tomcat/bin/startup.sh'
ExecStop=/bin/sh -c '. /etc/profile.d/setenv.sh; /home/tomcat/bin/shutdown.sh'
[Install]
WantedBy=multi-user.target
保存退出后:
systemctl daemon-reload;
systemctl enable tomcat.service
执行成功。
CentOS7通过systemctl配置tomcat7自启动
最新推荐文章于 2024-09-10 14:07:17 发布