You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

YUM安装Tomcat9后缺失startup.sh文件且无法启动服务的解决咨询

YUM安装Tomcat9后缺失startup.sh文件且无法启动服务的解决咨询

看起来你遇到的是Amazon Linux 2023下YUM安装Tomcat9的典型问题——默认通过yum install tomcat9安装的是精简版包,仅包含核心运行依赖库,没有附带传统的shell启动脚本(比如startup.sh、catalina.sh),也没有自动配置好systemd服务单元,所以才会出现找不到启动脚本和服务单元的报错。

下面给你两种可行的解决思路,优先推荐第一种符合系统运维规范的方案:

方案一:补充启动脚本并配置systemd服务(推荐)

这种方式能让Tomcat以系统服务的形式运行,支持开机自启、状态监控等功能,更适合生产环境。

  1. 确认并创建Tomcat运行用户
    首先检查系统中是否存在tomcat用户,没有的话创建一个专用的运行用户(避免用root运行服务):

    useradd -r -m -U -d /usr/share/tomcat9 -s /sbin/nologin tomcat
    
  2. 补充Tomcat启动脚本
    因为YUM包没带这些脚本,你可以从Apache Tomcat官方下载对应版本(9.0.71)的二进制压缩包,解压后把bin目录下的startup.sh、shutdown.sh、catalina.sh、setenv.sh这些脚本复制到服务器的/usr/share/tomcat9/bin/目录。

  3. 设置脚本权限
    给复制过来的脚本添加执行权限:

    chmod +x /usr/share/tomcat9/bin/*.sh
    
  4. 调整目录权限
    确保tomcat用户拥有Tomcat目录的所有权:

    chown -R tomcat:tomcat /usr/share/tomcat9
    
  5. 创建systemd服务单元文件
    新建/etc/systemd/system/tomcat9.service文件,写入以下配置内容:

    [Unit]
    Description=Apache Tomcat 9 Servlet Container
    After=network.target
    
    [Service]
    Type=forking
    User=tomcat
    Group=tomcat
    Environment="CATALINA_PID=/var/run/tomcat9/tomcat9.pid"
    Environment="CATALINA_HOME=/usr/share/tomcat9"
    Environment="CATALINA_BASE=/usr/share/tomcat9"
    ExecStart=/usr/share/tomcat9/bin/startup.sh
    ExecStop=/usr/share/tomcat9/bin/shutdown.sh
    Restart=on-failure
    RestartSec=5
    
    [Install]
    WantedBy=multi-user.target
    
  6. 配置PID目录
    创建Tomcat的PID文件存放目录并设置权限:

    mkdir -p /var/run/tomcat9
    chown tomcat:tomcat /var/run/tomcat9
    
  7. 启动并启用服务
    重新加载systemd配置,然后启动Tomcat服务并设置开机自启:

    systemctl daemon-reload
    systemctl start tomcat9
    systemctl enable tomcat9
    
  8. 验证服务状态
    查看服务是否正常运行:

    systemctl status tomcat9
    

方案二:直接用bootstrap.jar临时启动(应急用)

如果只是临时测试,不想配置systemd,可以直接用Tomcat的核心jar包启动:

nohup java -jar /usr/share/tomcat9/bin/bootstrap.jar start > /var/log/tomcat9.log 2>&1 &

这条命令会让Tomcat后台运行,日志输出到/var/log/tomcat9.log文件。需要停止服务时,执行:

java -jar /usr/share/tomcat9/bin/bootstrap.jar stop

额外小提示

你可以先尝试检查Amazon Linux 2023的软件仓库中是否有带启动脚本的配套包,比如执行:

yum search tomcat9

如果找到tomcat9-bin这类包,直接安装它可能会自动补上缺失的启动脚本,省去手动下载的步骤:

yum install tomcat9-bin

备注:内容来源于stack exchange,提问作者quangkid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 13:18:04