Vert.x应用无法通过命令停止:按官方文档操作遇阻
解决Vert.x Verticle无法通过-Dvertx参数停止的问题
我之前也碰到过一模一样的问题,核心是搞混了Vert.x启停命令里的参数传递逻辑——启动时用-Dvertx-id指定应用标识,但停止时的参数规则完全不一样,下面给你梳理正确的操作步骤:
先确认启动的正确姿势(复习)
你用的后台启动命令是没问题的:
java -jar my-verticle-fat.jar start -Dvertx-id=my-app-name
如果没手动指定my-app-name,系统会生成随机ID并打印在控制台,一定要记好这个ID,停止时必须用到它。
附加集群参数启动的命令也正确:
java -jar my-verticle-fat.jar start -Dvertx-id=my-app-name -cluster
停止应用的正确命令
你无法停止的原因大概率是用错了参数格式——停止时不需要用-Dvertx-id这种JVM参数,而是要把应用ID直接作为stop命令的位置参数传递,分两种情况:
情况1:启动时手动指定了my-app-name
直接执行:
java -jar my-verticle-fat.jar stop my-app-name
情况2:启动时用的是系统生成的随机ID
先找到启动时控制台打印的随机ID(比如类似abc123xyz的字符串),然后执行:
java -jar my-verticle-fat.jar stop abc123xyz
额外注意事项
- 如果是集群模式启动的应用,停止时不需要额外加
-cluster参数,只要指定正确的应用ID即可,集群关联信息会通过Vert.x的集群注册表自动匹配。 - 要是找不到启动时的ID,可以去
~/.vertx/目录下找对应应用的PID文件,里面会包含应用ID信息。
内容的提问来源于stack exchange,提问作者Simple-Solution
相关产品推荐
相关产品推荐

