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

WildFly注册为systemd服务后启动即退出的问题求助

WildFly服务通过systemctl启动后立即退出的解决方法

已完成部署操作:

  • 将wildfly.service复制至/etc/systemd/system/目录
  • 将wildfly.conf复制至/etc/wildfly/目录
  • 将launch.sh放置在wildfly/bin目录下

但执行systemctl start wildfly启动服务时,服务会立即退出,服务状态信息如下:

○ wildfly.service - The WildFly Application Server
     Loaded: loaded (/etc/systemd/system/wildfly.service; enabled; vendor preset: enabled)
     Active: inactive (dead) since Wed 2022-09-28 02:08:05 UTC; 10s ago
    Process: 3549 ExecStart=/opt/wildfly/bin/launch.sh $WILDFLY_MODE $WILDFLY_CONFIG $WILDFLY_BIND (code=exited, status=0/SUCCESS)
   Main PID: 3549 (code=exited, status=0/SUCCESS)
        CPU: 49ms

Sep 28 02:08:05 test4 systemd[1]: Started The WildFly Application Server.
Sep 28 02:08:05 test4 systemd[1]: wildfly.service: Deactivated successfully.

直接执行/opt/wildfly/bin/launch.sh脚本时,WildFly可正常启动且能访问首页。当前wildfly.service配置内容:

[Unit]
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
LimitNOFILE=102642
PIDFile=/run/wildfly/wildfly.pid
ExecStart=/opt/wildfly/bin/launch.sh $WILDFLY_MODE $WILDFLY_CONFIG $WILDFLY_BIND
StandardOutput=null

[Install]
WantedBy=multi-user.target

解决步骤

  • 添加服务类型配置:在wildfly.service的[Service]段添加Type=forking。因为WildFly通过launch.sh启动后会fork出子进程运行,systemd默认会监控ExecStart指定的主进程,主进程退出后就会终止服务。设置Type=forking后,systemd会等待PIDFile中指定的进程启动,不再以launch.sh的退出作为服务结束的标志。修改后的[Service]段如下:

    [Service]
    Type=forking
    Environment=LAUNCH_JBOSS_IN_BACKGROUND=1
    EnvironmentFile=-/etc/wildfly/wildfly.conf
    LimitNOFILE=102642
    PIDFile=/run/wildfly/wildfly.pid
    ExecStart=/opt/wildfly/bin/launch.sh $WILDFLY_MODE $WILDFLY_CONFIG $WILDFLY_BIND
    StandardOutput=null
    
  • 确保PID文件目录权限正确:检查/run/wildfly目录是否存在,且WildFly运行用户拥有读写权限。如果目录不存在,执行以下命令创建并设置权限(假设WildFly使用wildfly用户运行,根据实际情况替换):

    sudo mkdir -p /run/wildfly
    sudo chown wildfly:wildfly /run/wildfly
    
  • 验证环境变量配置:确认/etc/wildfly/wildfly.conf中的WILDFLY_MODE、WILDFLY_CONFIG、WILDFLY_BIND等变量设置与直接执行launch.sh时的环境一致,避免因环境变量缺失导致服务启动异常。

  • 重新加载配置并重启服务:

    sudo systemctl daemon-reload
    sudo systemctl restart wildfly
    

执行systemctl status wildfly查看服务状态,若显示active (running),再访问WildFly首页确认服务正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 06:30:55