如何知道特定进程何时卡住?

发布于 2024-09-04 23:14:08 字数 153 浏览 5 评论 0原文

有没有办法知道 Java 中某个特定进程何时“卡住”?

我正在从我的 java 程序运行一个外部应用程序。有时,这个应用程序会挂起。我想知道这个应用程序何时停止工作,以便我可以从我的代码中杀死它。我正在考虑从代码中的不同线程进行某种类型的监视。

有什么困难吗?

Is there a way to know when a specific process is "stuck" in Java?

I'm running an external application from my java program. Sometimes, this app hangs. I would like to know when this app stops working so I can kill it from my code. I'm thinking of some type of monitoring from a different thread in my code.

Any toughts?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

ゃ懵逼小萝莉 2024-09-11 23:14:08

在 java 6 下,您可以获得所有线程的线程转储。如果您每分钟拍摄这些快照,您就可以看到发生了什么。

Under java 6 you can get a thread dump for All threads. If you snapshot these every minute you Can see what goes ón.

羁客 2024-09-11 23:14:08

我的第一个问题是问“卡住”是什么意思。是否处于无限循环?是不是陷入僵局了?

从问题的本质来看,我猜你不知道,但如果你想做的就是在它挂起时杀死它,你可以让它定期将一些输出写入文件。另一个进程可以监视该文件,如果经过一段时间没有看到输出,您可以杀死它。

My first question would be to ask what you mean by "stuck". Is it in an infinite loop? Is it deadlock?

By the nature of the question I'm guessing you don't know, but if all you want to do is kill it when it hangs, you can have it write some output to a file periodically. Another process can monitor this file, and if some number of periods go by without seeing output, you can kill it then.

堇色安年 2024-09-11 23:14:08

如果另一个应用程序也是 java,您可以使用 Java Service Wrapper 来监视并在挂起时重新启动它。

http://wrapper.tanukisoftware.org/doc/english/download.jsp

If the other app is also java, you could use the Java Service Wrapper for monitoring and restarting it in the event that it is hung.

http://wrapper.tanukisoftware.org/doc/english/download.jsp

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文