菜鸟科技网

jboss停止命令

核心概念:两种主要的停止方式

  1. 优雅停止:这是推荐的方式,它会通知正在处理请求的应用程序完成当前处理,然后关闭服务器,这可以避免数据丢失和连接中断。
  2. 强制停止:立即终止所有进程,不进行任何清理,这可能会导致数据损坏或未完成的请求丢失,仅在紧急情况下使用。

独立模式

这是最常见和最简单的部署模式。

jboss停止命令-图1
(图片来源网络,侵删)

方法1:使用 jboss-cli.sh (推荐,优雅停止)

这是官方推荐的命令行管理工具,可以安全地停止服务器。

Linux / Unix / macOS:

# 1. 进入 JBoss/WildFly 的 bin 目录
cd /path/to/wildfly-X.Y.Z.Final/bin
# 2. 执行停止命令
./jboss-cli.sh --connect --command=:shutdown

Windows:

# 1. 进入 JBoss/WildFly 的 bin 目录
cd C:\path\to\wildfly-X.Y.Z.Final\bin
# 2. 执行停止命令
jboss-cli.bat --connect --command=:shutdown

命令解析:

jboss停止命令-图2
(图片来源网络,侵删)
  • jboss-cli.sh / jboss-cli.bat: 命令行接口脚本。
  • --connect: 连接到正在运行的 JBoss/WildFly 服务器。
  • --command=:shutdown: 发送 shutdown 命令,请求服务器优雅地关闭。

方法2:使用 standalone.sh (优雅停止)

您可以直接在服务器启动脚本上添加 --shutdown 参数来停止它。

Linux / Unix / macOS:

# 进入 bin 目录
cd /path/to/wildfly-X.Y.Z.Final/bin
# 执行停止命令
./standalone.sh --shutdown

Windows:

cd C:\path\to\wildfly-X.Y.Z.Final\bin
standalone.bat --shutdown

注意: 此方法需要您知道服务器启动时使用的 管理端口,默认情况下,管理端口是 9990,如果您的端口不是默认值,需要指定:

jboss停止命令-图3
(图片来源网络,侵删)
./standalone.sh --shutdown --management-port=1234

方法3:使用 jps 命令查找并强制杀死进程 (强制停止)

CLI 连接不上或服务器无响应,可以使用此方法。

Linux / Unix / macOS:

# 1. 查找 Java 进程,找出 JBoss 的主进程 ID
jps -l | grep "org.jboss.as.standalone"
# 输出示例:
# 12345 /path/to/wildfly-X.Y.Z.Final/jboss-modules.jar
# 2. 根据进程 ID (PID) 强制杀死进程
# 假设 PID 是 12345
kill -9 12345

Windows:

# 1. 查找 Java 进程
jps -lv
# 找到包含 "org.jboss.as.standalone.Main" 的那一行,记下 PID
# 
# 12345 C:\path\to\wildfly-X.Y.Z.Final\jboss-modules.jar -- ...
# 2. 根据进程 ID (PID) 强制杀死进程
taskkill /F /PID 12345

域模式

在域模式下,有一个管理服务器来控制多个托管服务器。

方法1:使用 jboss-cli.sh (推荐,优雅停止)

在域模式下,您通过管理服务器来停止托管服务器。

Linux / Unix / macOS:

# 1. 进入 JBoss/WildFly 的 bin 目录
cd /path/to/wildfly-X.Y.Z.Final/bin
# 2. 连接到管理服务器并停止托管服务器
# 停止所有托管服务器
./jboss-cli.sh --connect --command=:shutdown
# 或者,只停止一个特定的托管服务器 (例如名为 "server-one" 的)
./jboss-cli.sh --connect --command=:shutdown(server-one)

Windows:

cd C:\path\to\wildfly-X.Y.Z.Final\bin
jboss-cli.bat --connect --command=:shutdown

方法2:使用 domain.sh (优雅停止)

与独立模式类似,可以直接在域管理脚本上添加 --shutdown 参数。

Linux / Unix / macOS:

cd /path/to/wildfly-X.Y.Z.Final/bin
./domain.sh --shutdown

Windows:

cd C:\path\to\wildfly-X.Y.Z.Final\bin
domain.bat --shutdown

同样,如果管理端口不是默认的 9990,需要使用 --management-port 参数指定。

方法3:使用 jpstaskkill (强制停止)

如果域管理服务器无响应,可以像独立模式一样,强制杀死主进程。

Linux / Unix / macOS:

# 查找域模式的主进程
jps -l | grep "org.jboss.as.domain"
# 找到 PID 后强制杀死
kill -9 <PID>

Windows:

jps -lv
# 找到包含 "org.jboss.as.domain.Main" 的 PID
taskkill /F /PID <PID>

总结与最佳实践

场景 推荐命令 (优雅停止) 备用方案 (强制停止)
独立模式 ./jboss-cli.sh --connect --command=:shutdown kill -9 <PID>taskkill /F /PID <PID>
域模式 ./jboss-cli.sh --connect --command=:shutdown kill -9 <PID>taskkill /F /PID <PID>

最佳实践:

  1. 优先使用 jboss-cli.sh:这是最安全、最可控的方式,能确保所有资源被正确释放。
  2. 明确停止目标:在域模式下,确保您是想停止整个域还是仅某个托管服务器。
  3. 检查日志:在执行停止命令后,可以查看 server.logdomain.log 来确认服务器是否已成功关闭。
  4. 避免强制停止:除非万不得已,否则不要使用 kill -9taskkill /F,因为它可能导致应用程序状态不一致或数据丢失。

希望这份详细的指南能帮助您顺利停止 JBoss/WildFly 服务器!

分享:
扫描分享到社交APP
上一篇
下一篇