凌峰创科服务平台

linux服务器 启动tomcat

环境准备

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

linux服务器 启动tomcat-图1
(图片来源网络,侵删)
  1. 安装 Java: Tomcat 是一个 Java 应用程序,必须安装 Java 运行环境。

    • 检查是否已安装:java -version
    • 如果未安装,请安装 OpenJDK (推荐):
      • CentOS/RHEL/Fedora: sudo yum install java-1.8.0-openjdk-develsudo dnf install java-11-openjdk-devel
      • Ubuntu/Debian: sudo apt update && sudo apt install openjdk-8-jdksudo apt install openjdk-11-jdk
  2. 下载并解压 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
  3. 设置环境变量 (推荐): 为了方便在任何目录下使用 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 的启动脚本。

linux服务器 启动tomcat-图2
(图片来源网络,侵删)
  1. 进入 Tomcat 的 bin 目录
    cd $CATALINA_HOME/bin
  2. 赋予脚本执行权限 (如果是第一次使用)
    chmod +x *.sh
  3. 启动 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+),这是目前最主流和规范的方式。

linux服务器 启动tomcat-图3
(图片来源网络,侵删)
  1. 创建 systemd 服务文件

    sudo vim /etc/systemd/system/tomcat.service
  2. 在文件中添加以下内容 (请根据你的实际情况修改 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
  3. 创建 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
  4. 启动并设置开机自启

    # 重新加载 systemd 配置,使其识别新创建的服务
    sudo systemctl daemon-reload
    # 启动 Tomcat 服务
    sudo systemctl start tomcat
    # 设置 Tomcat 服务开机自启
    sudo systemctl enable tomcat
  5. 管理 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

  1. 执行启动命令

    nohup $CATALINA_HOME/bin/startup.sh > /dev/null 2>&1 &
    • nohup: 忽挂断,即使用户退出登录,程序也会继续运行。
    • > /dev/null 2>&1: 将标准输出和错误输出都重定向到 /dev/null,也就是丢弃,如果你想保留日志,可以重定向到一个文件,> $CATALINA_HOME/logs/startup.log 2>&1
    • &: 将命令放入后台执行。
  2. 如何检查是否启动成功?

    • 使用 ps -ef | grep java 查看进程。
    • 使用 tail -f $CATALINA_HOME/logs/catalina.out 查看日志。
  3. 如何停止 Tomcat?

    • 找到 Tomcat 的进程 ID (PID): ps -ef | grep java
    • 使用 kill 命令杀死该进程: kill <PID>
    • 如果进程无法正常停止,可以强制杀死: kill -9 <PID>

总结与对比

方法 优点 缺点 适用场景
直接启动脚本 简单、快速,无需额外配置 进程与当前终端绑定,终端关闭后服务停止;不规范,不便于管理 开发测试、快速验证
作为服务启动 最规范、最安全;支持开机自启、状态管理、日志管理;可以指定运行用户 需要创建服务文件,初始配置稍复杂 生产环境、服务器长期运行
nohup 后台启动 方便将进程置于后台运行 不便于管理(如开机自启、状态查看);停止服务需要手动查 PID 临时性任务、调试时需要在后台运行

强烈建议在生产环境中使用 方法二:作为服务启动,这是最稳定、最安全、最易于管理的方案。

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