大家好,我的 java 应用程序中有两个进程,如下所示。
Process p1=some process;
Process p2=some process;
第一次它开始完美工作。但是当我重新加载应用程序时,旧进程也在运行,所以我只想杀死旧进程(如果它正在执行)。我知道我们可以通过使用其进程来终止进程id。但是我怎样才能获得这个p1和p2的进程id。有什么想法吗?
最佳答案
捕获应用程序中的重新加载事件并在退出之前终止子进程。
如果这不起作用,您的设计中可能存在错误。尝试修复该错误。真的。我是说真的。
解决方法是将 PID 写入文本文件。开始时,阅读文本文件,检查这是否是正确的进程,然后终止它。
如果没有检查,您可能会杀死由其他人创建的完全有效的进程。我的推理是这样的:重新加载时无法终止该进程。这意味着您也无法删除该文本文件。所以PID文件会一直存在。最终,您将杀死错误的进程。这种情况每年都会发生一次。这将在您离开/换工作/等六个月后第一次发生。没有人会理解发生了什么,因为它几乎不可能重现。
关于java - java中如何杀死特定进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10680843/