菜鸟科技网

Linux启动Tomcat服务命令有哪些?

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

Linux启动Tomcat服务命令有哪些?-图1
(图片来源网络,侵删)

基础启动命令

最直接的启动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命令实现后台启动:

Linux启动Tomcat服务命令有哪些?-图2
(图片来源网络,侵删)
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  # 设置开机自启

常用管理命令:

Linux启动Tomcat服务命令有哪些?-图3
(图片来源网络,侵删)
systemctl status tomcat  # 查看服务状态
systemctl stop tomcat    # 停止服务
systemctl restart tomcat # 重启服务

常见问题排查

若启动失败,可按以下步骤排查:

  1. 端口冲突:检查8080端口是否被占用
    netstat -tulnp | grep 8080
  2. 权限问题:确保tomcat用户对logstemp等目录有写权限
  3. 内存不足:调整catalina.sh中的JAVA_OPTS参数,增加堆内存
  4. 依赖缺失:确认JAVA_HOME路径正确,且包含JDK核心库

多实例部署

若需在同一服务器运行多个Tomcat实例,可通过修改端口和配置目录实现,为第二个实例配置:

  1. 复制Tomcat目录:
    cp -r /opt/apache-tomcat-9.0.50 /opt/apache-tomcat-9.0.50-2
  2. 修改conf/server.xml中的端口(避免与默认冲突):
    • HTTP Connector:8081
    • AJP Connector:8009
    • Shutdown端口:8005
  3. 设置环境变量:
    export CATALINA_BASE=/opt/apache-tomcat-9.0.50-2
    export CATALINA_HOME=/opt/apache-tomcat-9.0.50-2
  4. 启动实例:
    $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环境,可通过以下方式解决:

  1. 安装JDK:sudo apt install openjdk-11-jdk(Ubuntu/Debian)或sudo yum install java-11-openjdk-devel(CentOS/RHEL)
  2. 设置环境变量:编辑~/.bashrc文件,添加:
    export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
    export PATH=$JAVA_HOME/bin:$PATH

    执行source ~/.bashrc使配置生效,重启终端后再次启动Tomcat。

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