环境准备
在开始之前,请确保您已经完成了以下准备工作:

-
安装 Java: Tomcat 是一个 Java 应用程序,必须安装 Java 运行环境。
- 检查是否已安装:
java -version - 如果未安装,请安装 OpenJDK (推荐):
- CentOS/RHEL/Fedora:
sudo yum install java-1.8.0-openjdk-devel或sudo dnf install java-11-openjdk-devel - Ubuntu/Debian:
sudo apt update && sudo apt install openjdk-8-jdk或sudo apt install openjdk-11-jdk
- CentOS/RHEL/Fedora:
- 检查是否已安装:
-
下载并解压 Tomcat: 从 Apache Tomcat 官网 下载 Binary Distributions (
apache-tomcat-9.0.82.tar.gz),并将其解压到您希望安装的目录,/opt/。# 将下载的文件移动到 /opt 目录 sudo mv apache-tomcat-9.0.82.tar.gz /opt/ # 进入 /opt 目录 cd /opt # 解压 sudo tar -zxvf apache-tomcat-9.0.82.tar.gz # 为了方便,创建一个软链接 sudo ln -s apache-tomcat-9.0.82 tomcat
-
设置环境变量 (推荐): 为了方便在任何目录下使用
catalina.sh等脚本,可以设置CATALINA_HOME。# 编辑 /etc/profile 文件 sudo vim /etc/profile # 在文件末尾添加以下内容 export CATALINA_HOME=/opt/tomcat export PATH=$PATH:$CATALINA_HOME/bin # 保存后,让配置生效 source /etc/profile
直接启动脚本 (最简单,不推荐用于生产环境)
这是最直接的方式,直接调用 Tomcat 的启动脚本。

- 进入 Tomcat 的
bin目录cd $CATALINA_HOME/bin
- 赋予脚本执行权限 (如果是第一次使用)
chmod +x *.sh
- 启动 Tomcat
./startup.sh
输出示例:
Using CATALINA_BASE: /opt/tomcat
Using CATALINA_HOME: /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64
Using CLASSPATH: /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar
Tomcat started.
如何检查是否启动成功?
- 查看进程:
ps -ef | grep java,你应该能看到包含org.apache.catalina.startup.Bootstrap的 Java 进程。 - 查看日志:
tail -f $CATALINA_HOME/logs/catalina.out,如果看到 "Server startup in xxx ms" 等信息,说明启动成功。 - 访问服务: 在浏览器中输入
http://<你的服务器IP>:8080,如果看到 Tomcat 的欢迎页面,则启动成功。
停止 Tomcat:
./shutdown.sh
作为服务启动 (推荐,规范)
将 Tomcat 作为系统服务来管理,可以使用 systemd (适用于 CentOS 7+, Ubuntu 16.04+),这是目前最主流和规范的方式。

-
创建 systemd 服务文件
sudo vim /etc/systemd/system/tomcat.service
-
在文件中添加以下内容 (请根据你的实际情况修改
User,Group,CATALINA_HOME等路径)[Unit] Description=Apache Tomcat Web Application Container After=network.target [Service] Type=forking User=tomcat # 创建一个专门的用户来运行 Tomcat,更安全 Group=tomcat # 创建一个专门的用户组 Environment="JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64" # 请替换为你的 JAVA_HOME 路径 Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid" Environment="CATALINA_HOME=/opt/tomcat" Environment="CATALINA_BASE=/opt/tomcat" Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -XX:MaxPermSize=256M" # JVM 内存设置 Environment="JAVA_OPTS=-Djava.security.egd=file:/dev/./urandom" ExecStart=/opt/tomcat/bin/startup.sh ExecStop=/opt/tomcat/bin/shutdown.sh [Install] WantedBy=multi-user.target
-
创建 tomcat 用户和用户组 (如果上一步使用了
User=tomcat)sudo groupadd tomcat sudo useradd -s /bin/nologin -g tomcat -d /opt/tomcat tomcat # 将 tomcat 目录的所有权赋予 tomcat 用户 sudo chown -R tomcat:tomcat /opt/tomcat
-
启动并设置开机自启
# 重新加载 systemd 配置,使其识别新创建的服务 sudo systemctl daemon-reload # 启动 Tomcat 服务 sudo systemctl start tomcat # 设置 Tomcat 服务开机自启 sudo systemctl enable tomcat
-
管理 Tomcat 服务
- 查看服务状态:
sudo systemctl status tomcat - 查看实时日志:
sudo journalctl -u tomcat -f - 停止服务:
sudo systemctl stop tomcat - 重启服务:
sudo systemctl restart tomcat - 禁用开机自启:
sudo systemctl disable tomcat
- 查看服务状态:
使用 nohup 后台启动 (适用于临时任务)
当你需要将 Tomcat 放在后台运行,并且不希望当前终端关闭后进程也终止时,可以使用 nohup。
-
执行启动命令
nohup $CATALINA_HOME/bin/startup.sh > /dev/null 2>&1 &
nohup: 忽挂断,即使用户退出登录,程序也会继续运行。> /dev/null 2>&1: 将标准输出和错误输出都重定向到/dev/null,也就是丢弃,如果你想保留日志,可以重定向到一个文件,> $CATALINA_HOME/logs/startup.log 2>&1。&: 将命令放入后台执行。
-
如何检查是否启动成功?
- 使用
ps -ef | grep java查看进程。 - 使用
tail -f $CATALINA_HOME/logs/catalina.out查看日志。
- 使用
-
如何停止 Tomcat?
- 找到 Tomcat 的进程 ID (PID):
ps -ef | grep java - 使用
kill命令杀死该进程:kill <PID> - 如果进程无法正常停止,可以强制杀死:
kill -9 <PID>
- 找到 Tomcat 的进程 ID (PID):
总结与对比
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 直接启动脚本 | 简单、快速,无需额外配置 | 进程与当前终端绑定,终端关闭后服务停止;不规范,不便于管理 | 开发测试、快速验证 |
| 作为服务启动 | 最规范、最安全;支持开机自启、状态管理、日志管理;可以指定运行用户 | 需要创建服务文件,初始配置稍复杂 | 生产环境、服务器长期运行 |
nohup 后台启动 |
方便将进程置于后台运行 | 不便于管理(如开机自启、状态查看);停止服务需要手动查 PID | 临时性任务、调试时需要在后台运行 |
强烈建议在生产环境中使用 方法二:作为服务启动,这是最稳定、最安全、最易于管理的方案。
