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

Ubuntu18.04环境下Wildfly.service启动报203/EXEC错误如何排查?

问题概述

在Ubuntu 18.04版本AWS虚拟机上部署WildFly 26.1.1,通过自定义安装脚本配置服务同时监听8080业务端口、9990管理控制台端口,启动服务时触发systemd报错,且此前服务正常运行阶段曾出现ERR_CONNECTION_REFUSED连接错误。
启动报错日志如下:

systemd[1]: wildfly.service: Main process exited, code=exited, status=203/EXEC
systemd[1]: wildfly.service: Failed with result 'exit-code'.
现有配置信息

wildfly.service配置

Description=The WildFly Application Server
After=syslog.target network.target
Before=httpd.service

[Service]
Environment=LAUNCH_JBOSS_IN_BACKGROUND=1
EnvironmentFile=-/etc/wildfly/wildfly.conf
User=wildfly
LimitNOFILE=102642
PIDFile=/var/run/wildfly/wildfly.pid
ExecStart=/bin/bash /opt/wildfly/bin/launch.sh $WILDFLY_MODE $WILDFLY_CONFIG $WILDFLY_BIND
StandardOutput=null

[Install]
WantedBy=multi-user.target

相关文件权限

systemd对应路径下的文件权限信息:

-rw-r--r-- 1 wildfly wildfly 645 May 18 19:08 README
-rwxr-xr-x 1 wildfly wildfly 217 May 18 19:08 launch.sh
-rw-r--r-- 1 wildfly wildfly 165 May 18 19:08 wildfly.conf
-rwxrwxrwx 1 wildfly wildfly 419 Jun 15 21:09 wildfly.service
排查解决步骤

status=203/EXEC的核心含义是systemd无法正常执行ExecStart字段指定的启动命令,按以下优先级排查:

  • 修复service文件格式错误
    当前wildfly.service文件最顶部缺失[Unit]段标识,systemd无法正确解析配置规则,会直接导致执行逻辑异常。在文件第一行补上[Unit],修正后文件开头结构如下:
    [Unit]
    Description=The WildFly Application Server
    After=syslog.target network.target
    Before=httpd.service
    
    修改完成后执行systemctl daemon-reload重新加载systemd配置,再尝试启动服务。
  • 修正服务文件权限
    当前wildfly.service权限为777(全局可写),systemd出于安全机制会拒绝加载全局可写的服务单元文件,直接导致启动失败。执行以下命令修正权限:
    chmod 644 /etc/systemd/system/wildfly.service
    chown root:root /etc/systemd/system/wildfly.service
    
    修正后再次执行systemctl daemon-reload重载配置。
  • 校验启动路径与目录权限
    1. 执行ls -l /opt/wildfly/bin/launch.sh确认启动脚本真实存在,核对配置中填写的路径无拼写、大小写错误
    2. 执行ls -l /bin/bash确认bash解释器路径正常,若存在软链损坏可执行apt install --reinstall bash修复
    3. 执行namei -l /opt/wildfly/bin/launch.sh逐层校验路径权限,确认wildfly用户对路径上每一级目录都有读、执行权限,上层目录权限异常会导致脚本无法被读取执行
  • 手动执行启动脚本复现隐式错误
    切换到wildfly用户手动执行启动命令,直接获取脚本层面的报错信息,绕过systemd的日志封装:
    su - wildfly -s /bin/bash -c "/bin/bash /opt/wildfly/bin/launch.sh standalone standalone.xml 0.0.0.0"
    
    手动执行时会直接输出Java环境缺失、WildFly文件损坏、配置语法错误等具体问题,比systemd返回的通用错误码定位效率更高。
  • 排查ERR_CONNECTION_REFUSED问题
    服务启动成功后如果仍出现连接拒绝,按以下顺序校验:
    1. 执行ss -tulnp | grep java确认WildFly实际监听的地址与端口,若服务仅绑定127.0.0.1则外部IP无法访问,需要调整启动参数将绑定地址设为0.0.0.0或对应网卡的内网IP
    2. 核对AWS安全组规则、Ubuntu本地ufw防火墙规则,确认8080、9990端口的入方向规则放通了访问源IP段
    3. 查看WildFly运行日志/opt/wildfly/standalone/log/server.log,确认启动过程中无应用部署失败、端口被占用导致的监听中断问题
  • 排查阶段优化建议
    当前配置将StandardOutput设为null,会丢失启动过程的标准输出日志,排查阶段可以先注释掉该行,通过journalctl -u wildfly.service -f查看实时启动日志,问题修复后再恢复配置即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 02:18:19