Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在屏幕中运行的Java应用程序不会随着屏幕退出而终止_Java_Linux_Bash - Fatal编程技术网

在屏幕中运行的Java应用程序不会随着屏幕退出而终止

在屏幕中运行的Java应用程序不会随着屏幕退出而终止,java,linux,bash,Java,Linux,Bash,我正在运行一个java应用程序,通过在不同的屏幕会话中启动它们来管理其他java应用程序。我的问题是,如果其中一个托管应用程序没有响应,我想通过我的托管应用程序终止它的java进程 管理应用程序使用screen-dmS-appname java-jar路径启动其他应用程序 我尝试的第一件事是让我的管理应用程序运行screen-S name-X quit,但大多数时候,这只会消除屏幕会话,我会被一个无法访问的正在运行的java应用程序卡住 我试图研究的第二件事是杀死java进程本身,这将反过来终止

我正在运行一个java应用程序,通过在不同的屏幕会话中启动它们来管理其他java应用程序。我的问题是,如果其中一个托管应用程序没有响应,我想通过我的托管应用程序终止它的java进程

管理应用程序使用
screen-dmS-appname java-jar路径启动其他应用程序

我尝试的第一件事是让我的管理应用程序运行
screen-S name-X quit
,但大多数时候,这只会消除屏幕会话,我会被一个无法访问的正在运行的java应用程序卡住

我试图研究的第二件事是杀死java进程本身,这将反过来终止屏幕,但我的问题是如何获得java应用程序的PID

ps-A
没有帮助,因为它没有给出任何关于我想要杀死的特定java应用程序的线索

我需要PID对我的管理应用程序可用,或者以任何其他方式使我能够终止在屏幕内运行的java进程。 然而,解决我的问题最好的办法是能够命名java应用程序进程


非常感谢您的帮助。

当我启动任何托管应用程序时,我通过传递一个参数解决了问题,如下所示:

screen-dmS helperApp java-jar路径helperApp

这使我能够通过执行以下操作来识别流程的PID

jps-m|grep helperApp

因为我现在已经识别并获得了PID,所以我能够终止这个过程


感谢大家的帮助。

另一个选择是通过
jps
的输出进行grep。grep如何?jps为我做的就是打印PID,然后“jar”如何识别我需要的PID?请尝试
jps | grep“path”
。这是高度特定于操作系统的。您可以首先基于appname为screen进程grep ps output,从grep获取tty名称,然后为具有相同tty的java进程grep,然后杀死它。