HCRM博客

如何在CentOS系统上设置Tomcat开机启动?

CentOS开机启动Tomcat的详细步骤和配置

一、前言

在CentOS系统中,Tomcat作为一种常用的Web应用服务器,可以通过多种方式实现开机自启动,本文将详细介绍如何在CentOS中通过修改开机脚本和使用systemd服务来实现Tomcat的开机自启动,并提供相关的FAQs以解决常见问题。

如何在CentOS系统上设置Tomcat开机启动?-图1
(图片来源网络,侵权删除)

二、前置环境

1、JDK:Tomcat需要JDK环境,不同版本的Tomcat需要对应不同版本的JDK,本文以JDK 8为例。

   yum install java1.8.0openjdk y

2、Tomcat:本文以Tomcat 9为例。

   wget https://downloads.apache.org/tomcat/tomcat9/v9.0.76/bin/apachetomcat9.0.76.tar.gz
   tar xzvf apachetomcat9.0.76.tar.gz C /usr/local
   mv /usr/local/apachetomcat9.0.76 /usr/local/tomcat

三、配置Tomcat开机自启动

方法一:修改开机脚本

1、创建启动脚本

新建一个名为bootstartup.sh的文件,内容如下:

   #!/bin/bash
   # Tomcat startup script for the Tomcat server
   # chkconfig: 345 80 20
   # description: Start the tomcat deamon
   . /etc/rc.d/init.d/functions
   prog=tomcat9
   JAVA_HOME=/usr/lib/jvm/java1.8.0openjdk
   export JAVA_HOME
   CATALINA_HOME=/usr/local/tomcat
   export CATALINA_HOME
   case "$1" in
       start)
           echo "Starting Tomcat..."
           $CATALINA_HOME/bin/startup.sh
           ;;
       stop)
           echo "Stopping Tomcat..."
           $CATALINA_HOME/bin/shutdown.sh
           ;;
       restart)
           echo "Stopping Tomcat..."
           $CATALINA_HOME/bin/shutdown.sh
           sleep 2
           echo "Starting Tomcat..."
           $CATALINA_HOME/bin/startup.sh
           ;;
       *)
           echo "Usage: $prog {start|stop|restart}"
           exit 1
           ;;
   esac
   exit 0

2、赋予执行权限

如何在CentOS系统上设置Tomcat开机启动?-图2
(图片来源网络,侵权删除)
   chmod +x /usr/local/tomcat/bin/bootstartup.sh

3、将脚本复制到/etc/rc.d/init.d/目录并命名为tomcat

   cp /usr/local/tomcat/bin/bootstartup.sh /etc/rc.d/init.d/tomcat

4、设置开机自启动

   chkconfig add tomcat
   chkconfig tomcat on

方法二:添加系统服务

1、在Tomcat的bin目录下新建setenv.sh文件

   CATALINA_PID="/usr/local/tomcat/temp/tomcat.pid"
   export CATALINA_PID

2、编辑catalina.sh文件

打开catalina.sh文件,注释掉以下代码(如果存在):

如何在CentOS系统上设置Tomcat开机启动?-图3
(图片来源网络,侵权删除)
   # if [ z "$CATALINA_SH" ] ; then
   #     CATALINA_SH="$CATALINA_HOME/bin/catalina.sh"
   # fi

添加以下内容:

   if [ z "$CATALINA_PID" ] ; then
       CATALINA_PID="$CATALINA_BASE/temp/tomcat.pid"
   fi

3、/usr/lib/systemd/system目录下新建tomcat.service文件

   [Unit]
   Description=Apache Tomcat Web Application Container
   After=syslog.target network.target
   [Service]
   Type=forking
   Environment="JAVA_HOME=/usr/lib/jvm/java1.8.0openjdk"
   PIDFile=/usr/local/tomcat/temp/tomcat.pid
   ExecStart=/usr/local/tomcat/bin/startup.sh
   ExecStop=/usr/local/tomcat/bin/shutdown.sh
   PrivateTmp=true
   [Install]
   WantedBy=multiuser.target

4、重新加载systemd管理的服务

   systemctl daemonreload

5、设置开机自启动

   systemctl enable tomcat

6、启动Tomcat服务

   systemctl start tomcat

7、验证Tomcat是否启动成功

   systemctl status tomcat
   ps ef | grep tomcat

四、验证与测试

1、重启系统并验证

   reboot

系统重启后,检查Tomcat是否自动启动:

   ps ef | grep tomcat

2、访问测试:在浏览器中输入http://<服务器IP>:8080,查看是否能正常访问Tomcat默认页面,如果不能访问,可能是防火墙问题,需开放端口:

   firewallcmd permanent addport=8080/tcp
   firewallcmd reload

五、常见问题FAQs

Q1: Tomcat无法启动或启动失败怎么办?

A1: 检查以下几点:

1、确保JDK已正确安装并配置环境变量。

2、检查Tomcat日志(通常位于$CATALINA_HOME/logs目录下)中的报错信息。

3、确保setenv.sh文件中的CATALINA_PID路径正确。

4、确保Tomcat配置文件(如server.XML)配置正确。

5、确保端口8080未被其他进程占用。

6、确保防火墙已开放8080端口。

Q2: 如何更改Tomcat的默认端口?

A2: 编辑$CATALINA_HOME/conf/server.xml文件,找到以下内容:

<Connector port="8080" protocol="HTTP/1.1" ... />

8080改为所需的端口号,然后保存并重启Tomcat服务,记得开放新端口的防火墙规则。

分享:
扫描分享到社交APP
上一篇
下一篇