Grails:Tomcat 不会在产品中完全关闭

2024-02-27

我在关闭生产环境中的 Grails 应用程序时遇到问题。

从 IntelliJ 运行时,它会干净地关闭。但在独立的 Tomcat 7 上,关闭会使其进入僵尸状态,其中 java 进程仍然存在,但 HTTP 请求挂起。我必须杀死java进程(使用kill)。

我正在使用 Tomcat 的标准 bin/startup.sh 和 shutdown.sh。 Tomcat 停止后,我将 .war 放入 Tomcat 的 /webapps 目录中,然后启动。

我怀疑它可能是 Quartz 作业调度程序插件,但我部署了一个在 grails-app/jobs 中没有作业的版本,但它仍然挂起。

有人以前遇到过这个吗?谢谢!


非守护线程

可能是一个或多个非守护线程仍在运行并阻止 tomcat 成功关闭。

  • 打开终端并输入ps -ef| grep java并找到你的Tomcat7p_id
  • type kill -3 p_id
  • 类型(在您的 Tomcat 目录中)tail -200 logs/catalina.out
  • inspect 线程转储由产生的kill -3
  • 寻找非守护线程
  • 检查您的代码以确定该进程仍然存在的原因。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Grails:Tomcat 不会在产品中完全关闭 的相关文章

随机推荐

  • 如何使用 console.time 进行微基准测试,以测量编译器优化中的微小差异?

    该代码是对另一个 https stackoverflow com a 39087644 287948 这是一个丑陋的代码 但问题是关于 如何进行基准测试 The new console time https developer mozill
  • Robots.txt - 多个用户代理的抓取延迟的正确格式是什么?

    下面是一个示例机器人 txt文件允许多个用户代理 with 多次抓取延迟对于每个用户代理 抓取延迟值仅供说明之用 在真实的 robots txt 文件中会有所不同 我在整个网络上搜索了正确的答案 但找不到 有太多混合的建议 我不知道哪个是正
  • 在 Windows 窗体应用程序表单中嵌入文件资源管理器实例

    我的 C NET 3 5 应用程序生成文件 除了引发可以捕获和响应的事件之外 我还想以表单向用户显示目标文件夹 文件列表与其他信息以相同的形式显示 我正在使用一个实例WebBrowser控制 System Windows Forms Web
  • CMake:使用 target_sources() 添加当前目录和子目录中的所有文件

    在我们的 C 项目中 我们有几个 CMakeLists txt 文件 位于不同的目录 列出了所需的每个 cpp 文件target sources 例如 target sources
  • 属性的自定义模型活页夹

    我有以下控制器操作 HttpPost public ViewResult DoSomething MyModel model do something return View Where MyModel看起来像这样 public class
  • Python 中的运算符优先级 -PEMDAS

    我读到关于Python遵循PEMDAS的内容 即乘法的优先级高于除法 我运行了以下脚本 print 6 2 1 2 因此 python 应该将其解释为 12 2 即 6 因为乘法的优先级高于除法 但是 答案是24 谁能告诉我问题出在哪里 谢
  • 在 Excel 中计算电力塔的困难

    我似乎在让 Excel 正确计算电力塔时遇到一些麻烦 如果我输入 0 001 0 002 0 003在单元格中 Excel 将答案输出为0 99995855而不是正确答案0 00113609 据我所知 Excel正在解释a b c as a
  • 为什么R在重命名栅格堆栈层时添加“x”

    我在 R 中有一个包含 84 层的栅格堆栈 砖块 我试图根据从 199911 到 200610 1999 年 11 月到 2006 年 10 月 的年份和月份来命名它们 然而 由于某种原因 R 不断在我给图层指定的任何名称的开头添加 X 有
  • 使用 powershell 验证证书链

    我正在尝试编写一个脚本来验证 PowerShell 中的证书链 链中的所有证书都未过期 并查找最接近过期的证书 我使用以下脚本来查找颁发者证书 获取子项 递归 路径证书 Where Object Subject eq Certificate
  • Vue 2 - 计算输入的行总数

    我有一个带有数量和价格输入的动态表 并且我使用计算属性来计算每行的总计 现在我需要找到一种方法来计算总计 所有小计的总和 HTML tr td td tr
  • Golang 中带有替换的正则表达式

    我使用 regexp 包来替换下面的文本 macro products list products for product in products productsList endfor endmacro 我无法在不替换 products
  • AFNetworking 3.0无法下载图像

    我正在尝试使用 AFNetworking 3 0 这样做下载图像 UIImage loadImage NSString link block UIImage image UIImage imageNamed no user profile
  • PostgreSQL 中使用 Order By 子句进行分区

    我有一张包含这些值的表 user id ts val uid1 19 05 2019 01 49 50 0 uid1 19 05 2019 01 50 15 0 uid1 19 05 2019 01 50 20 0 uid1 19 05 2
  • 在另一个图像上绘制带有透明点的图像 - 在 Chrome >= 104 中失去透明度

    我的应用程序在 Chrome 104 105 中停止工作 任何人都可以确认此问题吗 steps 透明 DataArray Uint8ClampedArray new Uint8ClampedArray w h 插入一些值 为透明点保留 0
  • 将新元素插入现有 xml 时,lxml 不添加换行符

    我有一大堆现有的 xml 文件 我试图向所有文件添加一个元素 它们是许多 Maven 项目的 pom xml 我试图向所有文件添加一个父元素 以下是我的确切代码 问题是 pom2 xml 中的最终 xml 输出具有完整的parent元素在一
  • 编写一个简单的Bootloader HelloWorld - 错误函数打印字符串

    我尝试创建一个简单的引导加载程序来打印 hello world 当我调用一个仅打印 hello world 的函数时 我可以做到这一点 但是当我调用一个函数来打印特定字符串时 什么也没有发生 为此 我使用两个文件 第一个是 boot ld
  • 删除重复的行,只留下最旧的行?

    我有一个数据表 其中有许多来自用户提交的重复条目 我想根据字段删除所有重复行subscriberEmail 只留下原始提交 换句话说 我想搜索所有重复的电子邮件 并删除这些行 只留下原始的 我怎样才能在不交换表的情况下做到这一点 我的表包含
  • GPGPU:普通 PC 陷入困境的后果

    我在一本书中读到 在波前或扭曲中 所有线程共享一个公共程序计数器 那么它的后果是什么呢 为什么这很重要 NVIDIA GPU 一次执行 32 个线程 扭曲 AMD GPU 一次执行 64 个线程 波前 控制逻辑 读取和数据路径的共享减少了面
  • AzurePS 系统功能在新安装的 vsts-agent 上不可用

    我已在新的 Azure VM Windows Server 2012 R2 64 位 上成功安装新的 VSTS 代理 当我尝试在新的 vsts 代理上执行任何包含 azure powershell 任务的管道时 我收到一条错误消息 错误消息
  • Grails:Tomcat 不会在产品中完全关闭

    我在关闭生产环境中的 Grails 应用程序时遇到问题 从 IntelliJ 运行时 它会干净地关闭 但在独立的 Tomcat 7 上 关闭会使其进入僵尸状态 其中 java 进程仍然存在 但 HTTP 请求挂起 我必须杀死java进程 使