【发布时间】:2025-12-25 19:55:16
【问题描述】:
我有一个运行 Tomcat 8.5 的 Azure 应用服务,但似乎不知道如何进行线程转储。控制台和 DebugConsole 都无法识别 jstack。
【问题讨论】:
-
也许是 Kudu 控制台?
我有一个运行 Tomcat 8.5 的 Azure 应用服务,但似乎不知道如何进行线程转储。控制台和 DebugConsole 都无法识别 jstack。
【问题讨论】:
受上一个答案的启发,我创建了以下 bat 脚本(我想可能是 powershell)来完成这项工作:
powershell -Command "get-process java |select -expand id" > pid.txt
set /p id= < pid.txt
"%JAVA_HOME%\bin\jstack" -F %id% > out.txt
它使用您在应用程序中使用的 java 版本 (JAVA_HOME),不需要您提供任何输入。这很简单并且可以解决问题。例如,只需在您的 wwwroot 中创建一个 bat 文件,然后随时运行即可。
【讨论】:
【讨论】:
jstack 产生的巨大内容引起的。请尝试jstack -F PID > D:\home\site\out.txt 将内容输出到文本文件。