首先,参考的 https://blog.csdn.net/wabil/article/details/78818249 的方式添加 tomcat 开机启动,这种方式不需要添加 setenv.sh 文件,轻量级,非常方便,具体方式如下:
1. 创建一个服务文件
vim /lib/systemd/system/tomcat.service复制如下内容,修改后保存: [Unit]Description=tomcatAfter=network.target[Service]Type=oneshotExecStart=/home/apache-tomcat-7.0.70/bin/startup.sh // 自已的tomcat目录ExecStop=/home/apache-tomcat-7.0.70/bin/shutdown.sh // 自已的tomcat目录ExecReload=/bin/kill -s HUP $MAINPIDRemainAfterExit=yes[Install]WantedBy=multi-user.target2. 启动服务
systemctl start tomcat.service执行这步的时候,始终报启动失败,执行下面步骤查看失败原因。
3. 查看服务状态
systemctl status tomcat.service没理由 JAVA_HOME 和 JRE_HOME 不存在啊,明明是存在的,检查一下发现确实是存在的:
解决方法:
方法1. 在 tomcat/bin/setclasspath.sh 中添加 JAVA_HOME 和 JRE_HOME 的指向(试了一下,不知道什么原因没搞成功)
18 # ----------------------------------------------------------------------------- 19 # Set JAVA_HOME or JRE_HOME if not already set, ensure any provided settings 20 # are valid and consistent with the selected start-up options and set up the 21 # endorsed directory. 22 # -----------------------------------------------------------------------------23 # 24 # JAVA_HOME=/usr/java/jdk1.8.0_17125 # JRE_HOME=/usr/java/jdk1.8.0_171/jre方法2. 在 tomcat.service 中添加 JAVA_HOME 和 JRE_HOME 的指向(推荐)
Environment='JAVA_HOME=/usr/java/jdk1.8.0_171' Environment='JRE_HOME=/usr/java/jdk1.8.0_171/jre'此时再次执行服务启动命令 systemctl start tomcat.service 成功,服务运行状态如下:
附完整的 tomcat.service 文件
[Unit] Description=Tomcat After=network.target [Service] Type=forking Environment='JAVA_HOME=/usr/java/jdk1.8.0_171' Environment='JRE_HOME=/usr/java/jdk1.8.0_171/jre' ExecStart=/opt/my/tomcat/bin/startup.sh ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/opt/my/tomcat/shutdown.sh RemainAfterExit=yes [Install] WantedBy=multi-user.target4. 设置为开机启动
systemctl enable tomcat.service
转载于:https://www.cnblogs.com/xsbx/p/10173170.html
相关资源:数据结构—成绩单生成器