1. 简介
本文将介绍如何启动和停止 JBoss 应用服务器。
首先会梳理 JBoss 的两种运行模式,然后分别讲解在每种模式下如何正确地启动与停止服务。
✅ JBoss 是由 RedHat 开发的开源应用服务器,现已被重命名为 WildFly。你可以在 WildFly 官网 下载最新版本。
JBoss 支持两种主要运行模式:
- Standalone 模式:独立运行的单个实例
- Domain 模式:集中管理多个服务器实例
两者核心区别在于服务器的管理模式——是独立运维还是统一调度。
2. Standalone 模式
在这种模式下,每个服务器实例都是一个独立的 JVM 进程。这意味着:
- ❌ 无法集中管理多个实例
- ✅ 配置简单,适合开发、测试或单节点部署
- ✅ 可以并行运行多个 standalone 实例(需注意端口冲突)
如果你需要多实例部署,必须手动逐个启动,并分别部署应用。
2.1 配置文件与参数设置
Standalone 模式的启动脚本为:
- Linux/macOS:
standalone.sh
- Windows:
standalone.bat
这些脚本依赖以下关键配置文件,位于 $JBOSS_HOME/standalone/configuration/
目录下:
文件名 | 说明 |
---|---|
standalone.conf / .bat |
JVM 启动参数配置(如堆大小、GC 策略等) |
standalone.xml |
默认主配置文件 |
standalone-ee8.xml |
启用 Jakarta EE 8 特性的配置 |
standalone-ha.xml |
EE7 Web Profile + 高可用(HA)支持 |
standalone-full.xml |
EE7 完整版功能(含 EJB、JMS 等) |
standalone-full-ha.xml |
完整功能 + 高可用 |
⚠️ 提示:生产环境建议根据实际需求选择合适的配置文件,避免加载不必要的子系统影响性能。
2.2 启动服务器
进入 $JBOSS_HOME/bin
目录,执行对应平台的启动命令:
# Linux/macOS
./standalone.sh
# Windows
standalone.bat
若要使用非默认配置(例如启用 EE8),可通过 --server-config
参数指定:
./standalone.sh --server-config=standalone-ee8.xml
standalone.bat --server-config=standalone-ee8.xml
✅ 启动成功后,访问 http://localhost:8080 应能看到 WildFly 的欢迎页面。
💡 小技巧:可添加
-b 0.0.0.0
参数绑定所有网络接口,便于外部访问(仅限测试环境)。
2.3 停止服务器
最简单的方式是在启动终端中按下 Ctrl + C
,优雅关闭 JVM。
但更推荐使用 jboss-cli
工具进行远程或脚本化操作:
./jboss-cli.sh --connect command:shutdown
jboss-cli.bat --connect command:shutdown
✅ 这种方式适用于自动化运维场景,比如 CI/CD 流水线中控制服务生命周期。
3. Domain 模式(集中管理)
Domain 模式的核心优势是:通过一个 Domain Controller 统一管理多个 Server 实例。
适用于:
- 多节点集群部署
- 需要集中配置、统一发布应用的场景
- 生产环境中对运维效率要求较高的情况
所有服务器逻辑上属于同一个“域”,由 Domain Controller 负责协调配置分发与状态监控。
服务器实例默认存放在 $JBOSS_HOME/domain/servers
目录下。
3.1 配置文件与参数设置
Domain 模式的启动脚本为:
- Linux/macOS:
domain.sh
- Windows:
domain.bat
相关配置文件位于 $JBOSS_HOME/domain/configuration/
:
文件 | 作用 |
---|---|
domain.conf / .bat |
定义域内所有服务器的 JVM 参数模板 |
domain.xml |
主配置文件,定义 hosts、servers、profiles、interfaces 等 |
你也可以基于 domain.xml
创建自定义配置,实现灵活的环境适配(如 dev/staging/prod)。
3.2 启动服务器
与 Standalone 类似,只需运行对应脚本即可启动整个域:
# Linux/macOS
./domain.sh
# Windows
domain.bat
⚠️ 执行后会自动拉起 Domain Controller 和预定义的 Server Group 中的所有实例。
此时你可以通过 Web 控制台(默认端口 9990
)或 CLI 查看集群状态。
3.3 停止服务器
同样可以在启动终端按 Ctrl + C
停止整个域。
但更常见的是通过 jboss-cli
精细控制某个实例:
# 连接到 domain controller
./jboss-cli.sh --connect
jboss-cli.bat --connect
连接成功后,可以执行以下命令:
查看所有服务器实例
/host=master:read-children-names(child-type=server-config)
停止指定服务器
/host=master/server-config=server-one:stop
🔁 将
server-one
替换为你的实际实例名。
检查服务器运行状态
/host=master/server-config=server-one:read-resource(include-runtime=true)
✅ 返回结果中的 server-state
字段会显示 running
或 stopped
。
💡 实战建议:结合 shell 脚本 + CLI 命令实现灰度停机、滚动重启等高级运维策略。
4. 总结
本文梳理了 JBoss(WildFly)在两种运行模式下的启停方式:
模式 | 适用场景 | 管理方式 | 推荐程度 |
---|---|---|---|
Standalone | 单机部署、开发测试 | 独立管理 | ✅ 初学者首选 |
Domain | 集群部署、生产环境 | 集中管控 | ✅ 高级运维必备 |
📌 关键要点回顾:
- 启动时可通过
--server-config
指定不同 profile - 推荐使用
jboss-cli
实现程序化控制 - Domain 模式更适合复杂拓扑结构,但配置略重
- 生产环境务必做好配置隔离与权限控制
📌 拓展阅读:
➡️ 如何在 JBoss 上部署 WAR 包