我通过调用启动几个外部进程
Runtime.getRuntime.exec("java myApp");
我使用一些 java.concurent.Future 监视应用程序的正确启动和执行。我可以判断应用程序是否启动、错误、停止。我可以阻止它。
但是,当我杀死主应用程序(启动其他应用程序的那个)时,子应用程序的几个进程继续运行,我失去了对它们的控制。
我正在寻找一种方法来确保当母应用程序停止/杀死/错误时,所有子进程也被杀死。
我已经做了什么:
主应用程序在 tomcat 中运行,所以我监听上下文的破坏,并杀死所有子进程。但这还不够:当 tomcat 被停止或杀死时,它就不起作用了。