在Linux系统中启动Tomcat服务是Java Web应用部署中的常见操作,掌握正确的命令和流程对于开发者及运维人员至关重要,Tomcat作为开源的Servlet容器,其启动过程依赖于Java环境,因此操作前需确保系统已正确安装JDK或JRE,并配置好JAVA_HOME环境变量,以下将详细介绍Linux环境下启动Tomcat服务的多种方式、注意事项及相关配置技巧。

基础启动命令
最直接的启动Tomcat方式是通过Tomcat安装目录下的bin
目录中的脚本文件,假设Tomcat解压至/opt/apache-tomcat-9.0.50
,则启动命令如下:
cd /opt/apache-tomcat-9.0.50/bin ./startup.sh
执行后,控制台会输出类似信息:
Using CATALINA_BASE: /opt/apache-tomcat-9.0.50
Using CATALINA_HOME: /opt/apache-tomcat-9.0.50
Using CATALINA_TMPDIR: /opt/apache-tomcat-9.0.50/temp
Using JRE_HOME: /usr/lib/jvm/java-11-openjdk-amd64
Using CLASSPATH: /opt/apache-tomcat-9.0.50/bin/bootstrap.jar:/opt/apache-tomcat-9.0.50/bin/tomcat-juli.jar
Tomcat started.
这表明Tomcat已成功启动,默认监听8080端口,若需验证服务状态,可通过ps
命令检查进程:
ps -ef | grep tomcat
后台启动与日志管理
直接执行./startup.sh
会在前台运行,关闭终端后服务可能中断,推荐使用nohup
命令实现后台启动:

nohup ./startup.sh > /var/log/tomcat/startup.log 2>&1 &
nohup
:忽略挂断信号,确保进程持续运行>
:将标准输出重定向到指定日志文件2>&1
:将错误输出合并到标准输出&
:将命令放入后台执行
若需实时查看日志,可使用tail
命令:
tail -f /var/log/tomcat/startup.log
使用systemd管理服务(推荐)
对于生产环境,建议通过systemd将Tomcat注册为系统服务,实现开机自启、状态查询等便捷管理,首先创建服务文件:
vi /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_PID=/opt/apache-tomcat-9.0.50/temp/tomcat.pid" Environment="CATALINA_HOME=/opt/apache-tomcat-9.0.50" Environment="CATALINA_BASE=/opt/apache-tomcat-9.0.50" Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -XX:MaxPermSize=256M" Environment="JAVA_OPTS=-Djava.security.egd=file:/dev/./urandom" ExecStart=/opt/apache-tomcat-9.0.50/bin/startup.sh ExecStop=/opt/apache-tomcat-9.0.50/bin/shutdown.sh [Install] WantedBy=multi-user.target
保存后执行以下命令启用服务:
systemctl daemon-reload systemctl start tomcat systemctl enable tomcat # 设置开机自启
常用管理命令:

systemctl status tomcat # 查看服务状态 systemctl stop tomcat # 停止服务 systemctl restart tomcat # 重启服务
常见问题排查
若启动失败,可按以下步骤排查:
- 端口冲突:检查8080端口是否被占用
netstat -tulnp | grep 8080
- 权限问题:确保
tomcat
用户对logs
、temp
等目录有写权限 - 内存不足:调整
catalina.sh
中的JAVA_OPTS
参数,增加堆内存 - 依赖缺失:确认
JAVA_HOME
路径正确,且包含JDK核心库
多实例部署
若需在同一服务器运行多个Tomcat实例,可通过修改端口和配置目录实现,为第二个实例配置:
- 复制Tomcat目录:
cp -r /opt/apache-tomcat-9.0.50 /opt/apache-tomcat-9.0.50-2
- 修改
conf/server.xml
中的端口(避免与默认冲突):- HTTP Connector:8081
- AJP Connector:8009
- Shutdown端口:8005
- 设置环境变量:
export CATALINA_BASE=/opt/apache-tomcat-9.0.50-2 export CATALINA_HOME=/opt/apache-tomcat-9.0.50-2
- 启动实例:
$CATALINA_HOME/bin/startup.sh
Tomcat端口配置参考表: | 协议 | 默认端口 | 修改后示例 | 说明 | |------------|----------|------------|--------------------| | HTTP | 8080 | 8081 | Web服务访问端口 | | AJP | 8009 | 8010 | Apache/Nginx集成 | | Shutdown | 8005 | 8006 | 关闭服务指令端口 |
相关问答FAQs
Q1: 如何修改Tomcat的默认启动内存?
A: 编辑Tomcat的bin/catalina.sh
文件(Linux)或bin/catalina.bat
(Windows),在文件开头添加以下变量:
export JAVA_OPTS="-Xms512m -Xmx1024m -XX:MaxPermSize=256m"
其中-Xms
为初始堆内存,-Xmx
为最大堆内存,需根据服务器实际内存调整。
Q2: 启动Tomcat时提示“Neither the JAVA_HOME nor the JRE_HOME environment variable is defined”如何解决?
A: 此错误表明系统未找到Java环境,可通过以下方式解决:
- 安装JDK:
sudo apt install openjdk-11-jdk
(Ubuntu/Debian)或sudo yum install java-11-openjdk-devel
(CentOS/RHEL) - 设置环境变量:编辑
~/.bashrc
文件,添加:export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH
执行
source ~/.bashrc
使配置生效,重启终端后再次启动Tomcat。