如何在Linux环境下启动Tomcat服务?

在Linux系统下启动Tomcat是Java Web应用部署的基础操作,整个过程涉及环境准备、服务启动、配置检查及问题排查等环节,以下从环境配置到启动操作,再到常见问题处理,详细说明完整流程。

如何在linux下启动tomcat

环境准备:确保Java与Tomcat就绪

Tomcat是Java应用服务器,依赖Java运行环境(JRE)或Java开发工具包(JDK),启动前需确认Java环境已正确配置,并准备好Tomcat安装包。

检查Java环境

Linux系统需安装JDK 8或更高版本(Tomcat 10需JDK 11+),通过以下命令检查Java是否安装及版本:

java -version

若未安装,以Ubuntu/Debian系统为例,使用apt安装:

sudo apt update
sudo apt install openjdk-11-jdk -y

CentOS/RHEL系统则使用yum:

sudo yum install java-11-openjdk-devel -y

安装后需配置JAVA_HOME环境变量(若未自动配置),编辑/etc/profile文件:

sudo vim /etc/profile

在文件末尾添加:

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64  # 根据实际安装路径调整
export PATH=$JAVA_HOME/bin:$PATH

保存后执行source /etc/profile使配置生效,再次运行java -version确认输出版本信息。

安装Tomcat

从Apache Tomcat官网(https://tomcat.apache.org/)下载对应版本的tar.gz安装包(如Tomcat 10),或使用wget命令下载:

wget https://archive.apache.org/dist/tomcat/tomcat-10/v10.1.15/bin/apache-tomcat-10.1.15.tar.gz

下载后解压到指定目录(如/opt):

sudo tar -zxvf apache-tomcat-10.1.15.tar.gz -C /opt/
sudo mv /opt/apache-tomcat-10.1.15 /opt/tomcat10  # 重命名方便管理

设置Tomcat目录权限(避免因权限问题导致启动失败):

sudo chown -R $USER:$USER /opt/tomcat10  # 将所有者改为当前用户
chmod +x /opt/tomcat10/bin/*.sh  # 赋予bin目录下脚本执行权限

启动Tomcat服务

Tomcat启动方式分为前台启动和后台启动,根据实际需求选择。

前台启动(适合调试)

进入Tomcat的bin目录,执行startup.sh脚本:

如何在linux下启动tomcat

cd /opt/tomcat10/bin
./startup.sh

启动后终端会输出类似信息:

Using CATALINA_BASE:   /opt/tomcat10
Using CATALINA_HOME:   /opt/tomcat10
Using CATALINA_TMPDIR: /opt/tomcat10/temp
Using JRE_HOME:        /usr/lib/jvm/java-11-openjdk-amd64
Using CLASSPATH:       /opt/tomcat10/bin/bootstrap.jar:/opt/tomcat10/bin/tomcat-juli.jar
Tomcat started.

此时Tomcat进程会占用终端,关闭终端或按Ctrl+C会停止服务,适合临时调试或查看启动日志。

后台启动(适合生产环境)

若需让Tomcat在后台持续运行,可使用nohup命令结合&符号:

nohup ./startup.sh > /opt/tomcat10/logs/startup.log 2>&1 &

参数说明:

  • nohup:忽略挂断信号,即使关闭终端进程仍继续运行;
  • >:将标准输出重定向到startup.log文件;
  • 2>&1:将错误输出合并到标准输出;
  • &:让进程在后台执行。

启动后可通过ps命令查看Tomcat进程:

ps -ef | grep tomcat

若看到包含org.apache.catalina.startup.Bootstrap的进程,则表示启动成功。

常用Tomcat管理命令

Tomcat的bin目录提供多个管理脚本,以下是常用命令及其作用:

命令 作用说明 示例
./startup.sh 启动Tomcat服务(前台/后台) nohup ./startup.sh &
./shutdown.sh 正常停止Tomcat服务 ./shutdown.sh
./catalina.sh run 前台启动并实时打印日志(适合调试) ./catalina.sh run
./version.sh 查看Tomcat版本信息 ./version.sh

验证Tomcat启动状态

启动后需通过访问服务、检查端口及日志确认Tomcat正常运行。

浏览器访问

在浏览器地址栏输入http://Linux服务器IP:8080(若本地测试则为http://localhost:8080),若看到Tomcat默认欢迎页面(带有“Tomcat Version 10.1.15”等字样的页面),则表示启动成功。

检查端口监听

Tomcat默认监听8080端口,使用netstat或ss命令检查端口是否被占用:

netstat -tuln | grep 8080
# 或
ss -tuln | grep 8080

若输出类似tcp6 0 0 :::8080 :::* LISTEN,则表示端口正常监听。

查看启动日志

Tomcat的日志文件存放在logs目录,关键日志包括:

如何在linux下启动tomcat

  • catalina.out:记录Tomcat启动、运行及错误信息(前台启动时实时打印);
  • localhost.log:Web应用访问日志;
  • startup.log:后台启动时的启动日志(通过nohup重定向的文件)。

实时查看日志可使用tail命令:

tail -f /opt/tomcat10/logs/catalina.out

若启动过程中出现错误,日志会提示具体原因(如内存不足、端口冲突等)。

常见问题排查

启动Tomcat时可能遇到问题,以下是典型错误及解决方法:

错误提示 可能原因 解决方法
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined 未配置JAVA_HOME环境变量 编辑/etc/profile或~/.bashrc,添加JAVA_HOME并执行source
Port 8080 is already in use 8080端口被其他进程占用 执行netstat -tuln | grep 8080找到占用进程,用kill命令终止;或修改server.xml中的端口号
Permission denied 脚本无执行权限或Tomcat目录权限不足 执行chmod +x /opt/tomcat10/bin/*.sh和chown -R $USER:$USER /opt/tomcat10
Catalina.startup.Bootstrap fail JVM内存不足或Java版本不兼容 检查Java版本是否符合Tomcat要求,或在catalina.sh中调整JVM内存参数(如export JAVA_OPTS="-Xms512m -Xmx1024m")

配置优化(可选)

修改默认端口

编辑conf/server.xml文件,找到<Connector>标签,修改port属性:

<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

保存后重启Tomcat,访问端口变为8081。

设置开机自启动

通过systemd创建Tomcat服务,实现开机自启动:
创建服务文件/etc/systemd/system/tomcat.service:

sudo vim /etc/systemd/system/tomcat.service
```  路径需根据实际安装位置调整):  
```ini
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64"
Environment="CATALINA_HOME=/opt/tomcat10"
Environment="CATALINA_BASE=/opt/tomcat10"
ExecStart=/opt/tomcat10/bin/startup.sh
ExecStop=/opt/tomcat10/bin/shutdown.sh
User=$USER
Group=$USER
[Install]
WantedBy=multi-user.target

保存后执行以下命令启用服务:

sudo systemctl daemon-reload
sudo systemctl enable tomcat  # 开机自启动
sudo systemctl start tomcat   # 立即启动

相关问答FAQs

Q1:启动Tomcat时提示“Neither the JAVA_HOME nor the JRE_HOME environment variable is defined”怎么办?
A:该错误表示系统未找到Java环境变量,需检查JAVA_HOME是否正确配置:执行echo $JAVA_HOME查看当前值,若为空或错误,编辑~/.bashrc文件(vim ~/.bashrc),添加export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64(路径需与实际Java安装路径一致),保存后执行source ~/.bashrc,重新启动Tomcat即可。

Q2:如何修改Tomcat的默认访问端口?
A:Tomcat默认端口为8080,修改方法为:编辑Tomcat安装目录下的conf/server.xml文件,找到<Connector port="8080" .../>这一行,将port属性的值改为目标端口(如8081),保存文件后重启Tomcat服务,重启后访问http://IP:新端口即可生效,需注意修改的端口不能与其他服务冲突,且防火墙需开放该端口。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/20894.html

赞 (0)
酷番叔酷番叔
上一篇 2025年8月31日 13:43
下一篇 2025年8月31日 14:01

相关推荐

  • 如何查看linux的ftp地址

    Linux中,FTP地址通常是服务器的IP或域名加上端口号(默认21)。

    2025年8月15日
    23800
  • 程序员如何避免996加班?

    在Linux系统中监控硬件温度对于维护系统稳定性、预防过热损坏及优化性能至关重要,以下详细介绍多种命令行与图形化工具的操作方法,涵盖CPU、硬盘、GPU等核心硬件:核心工具安装与配置lm-sensors(CPU/主板传感器)安装:sudo apt install lm-sensors # Debian/Ubun……

    2025年8月8日
    24900
  • linux如何使用sql注入

    nux 本身不直接支持 SQL 注入,SQL 注入是针对数据库的攻击方式,与操作系统无关。

    2025年8月18日
    28600
  • Linux系统如何高效查看和分析log文件内容?

    在Linux系统中,日志文件是记录系统运行状态、服务运行情况、用户操作及错误信息的重要文件,通过查看日志可以快速定位和解决问题,Linux日志文件通常存储在/var/log/目录下,不同类型的日志会分类存储,如系统日志、应用日志、安全日志等,本文将详细介绍Linux查看日志文件的常用命令、工具及场景化应用,帮助……

    2025年8月25日
    68500
  • linux中如何查看设备信息

    Linux中,可使用lsblk查看块设备信息,lspci

    2025年8月18日
    23900

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信