Thorntail 没有优雅地退出

Posted

技术标签:

【中文标题】Thorntail 没有优雅地退出【英文标题】:Thorntail not exiting gracefully 【发布时间】:2019-04-14 23:16:13 【问题描述】:

我正在使用这些命令中的任何一个使用 Maven 运行 Thorntail 2.2.1.Final 微服务

mvn thorntail:start
mvn thorntail:run

它运行良好,但是当我点击Ctrl-C 时,它并没有退出应用程序,即控制台返回,但应用程序在后台运行。我试图阻止它

mvn thorntail:stop

但这不起作用。我必须去杀死这个过程。我使用的是 Windows 10。

【问题讨论】:

thorntail:startthorntail:stop 目标旨在作为 Maven 生命周期的一部分一起使用,通常用于集成测试。也就是说,thorntail:start 故意让进程在后台运行,thorntail:stop 应该停止它。对于交互使用,应使用mvn thorntail:run。它一直在前台等待,Ctrl+C 应该停止它后面的应用程序。如果这些都不起作用,那就是一个错误。我建议在issues.jboss.org/browse/THORN 中提交一个错误,并且最好还包括一个jstack 输出的过程。 感谢您对停止和启动的解释,我在文档中并不清楚。 如果这就是您所需要的,我是否应该将评论复制到实际答案中,以便您可以将问题标记为已回答? @Ladicek 是的,听起来不错 刚刚做到了,谢谢。 【参考方案1】:

thorntail:startthorntail:stop 目标旨在作为 Maven 生命周期的一部分一起使用,通常用于集成测试。也就是说,thorntail:start 故意让进程在后台运行,thorntail:stop 应该停止它。

对于交互使用,应使用mvn thorntail:run。它一直在前台等待,Ctrl+C 应该停止它后面的应用程序。

如果这些都不起作用,那就是一个错误。我建议在https://issues.jboss.org/browse/THORN 中提交一个错误,并且最好还包括一个jstack 的输出。

【讨论】:

我在 Windows 7 上运行 Thorntail 2.3.0.Final 并且 Ctrl+C 不足以退出 Thorntail。似乎只有 .bat 文件完成(根据要求的确认来判断)。 Java 进程继续运行。 Windows 10 上的 Thorntail 2.4.0.Final 对我来说也是同样的情况。你有没有为此开过票? 不知道在 Unix 上,但在 Windows 上 Thorntail 的行为很糟糕 在 Linux Thorntail uberjar 上无法通过 Maven 停止:thorntail:stop 在 CLI 中不可用 thorntail:stop 不打算在 CLI 中使用,也绝对不应该阻止任意 Thorntail uberjars。它仅适用于 Maven,在 post-integration-test 阶段,以及 thorntail:startpre-integration-test 阶段。

以上是关于Thorntail 没有优雅地退出的主要内容,如果未能解决你的问题,请参考以下文章

Glass:如何优雅地退出主菜单

优雅的App全然退出方案(没有不论什么内存泄漏隐患)

优雅地退出资源管理器(以编程方式)

在处理状态超时时优雅地退出 gen_statem

使用 Thorntail / Wildfly Swarm 配置 db2 数据源

在python中捕获Ctrl + C / SIGINT并优雅地退出多进程[重复]