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

Amazon Linux中启动Tomcat报错(code=exited, status=217/USER)求助

Tomcat启动报错(code=exited, status=217/USER)排查方案

status=217/USER的核心原因是systemd无法切换到配置中指定的tomcat用户/组,以下是具体排查步骤:

1. 确认tomcat用户/组是否存在且属性有效

  • 执行命令检查用户状态:
    id tomcat
    
    • 若输出提示no such user,需创建符合要求的系统用户:
      sudo useradd -r -m -U -d /opt/tomcat -s /sbin/nologin tomcat
      
      (-r标记为系统用户,-m创建主目录,-U自动创建同名组,-d指定主目录路径,-s设置不可登录shell)
    • 若用户已存在,查看/etc/passwd文件中tomcat用户的配置行,确保shell路径有效(如/sbin/nologin或/bin/bash,不能是不存在的路径):
      grep tomcat /etc/passwd
      

2. 检查service配置的用户/组拼写

确认/etc/systemd/system/tomcat.service中的User=tomcat和Group=tomcat无拼写错误(注意大小写、字符正确性)。

3. 修复启动脚本的权限与归属

  • 确保tomcat用户拥有脚本的执行权限:
    sudo chmod +x /home/test/scripts/start-tomcats.sh /home/test/scripts/shutdown-tomcats.sh
    
  • 调整脚本及目录的归属,确保tomcat用户可访问:
    sudo chown -R tomcat:tomcat /home/test/scripts
    
  • 同时检查上级目录/home/test的权限,需至少给tomcat用户rx权限(可执行、可读):
    sudo chmod o+rx /home/test
    

4. 验证环境变量文件的读取权限

/etc/environment需允许tomcat用户读取,执行以下命令修复:

sudo chmod o+r /etc/environment

5. 重新加载systemd配置并测试启动

  • 重新加载service配置:
    sudo systemctl daemon-reload
    
  • 再次尝试启动tomcat:
    sudo systemctl start tomcat
    
  • 查看状态确认结果:
    systemctl status tomcat.service
    

内容的提问来源于stack exchange,提问作者gabriel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 13:43:04