我正在运行一个java应用程序,通过在不同的屏幕会话中启动它们来管理其他Java应用程序。我的问题是,如果其中一个托管应用程序没有响应,我想通过我的管理应用程序杀死它的java进程。
管理应用使用screen -dmS appname java -jar path
我尝试的第一件事就是让我的管理应用程序运行screen -S name -X quit
,但大部分时间这只会消除屏幕会话,我会遇到一个我无法访问的正在运行的Java应用程序。
我试图研究的第二件事是杀死java进程本身,这将反过来终止屏幕,但我的问题是我如何获得java应用程序的PID?
ps -A
没有帮助,因为它没有提供我想要杀死所有其他特定java应用程序的任何线索。
我需要PID可用于我的管理应用程序或任何其他方式,使我能够终止在屏幕内运行的java进程。 然而,解决我的问题的最好方法是能够命名java app进程。
我感谢任何帮助。
答案 0 :(得分:0)
当我启动任何托管应用程序时,我通过传递参数来解决问题:
screen -dmS helperApp java -jar path helperApp
这使我能够通过
识别所有其他人的过程的PID jps -m | grep helperApp
因为我现在已经识别并获得了PID,所以我能够杀死这个过程。
感谢所有帮助过的人。