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

标签 java linux bash

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

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

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

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

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

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

感谢任何帮助。

最佳答案

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

screen -dmS helperApp java -jar 路径 helperApp

这使我能够通过执行以下操作来识别所有其他进程的 PID

jps -m | grep helperApp

由于我现在已经识别并获取了 PID,因此我能够终止该进程。

感谢所有提供帮助的人。

关于在屏幕中运行的 Java 应用程序不会因屏幕退出而终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44837177/

相关文章:

linux - 在 Linux 中打印 find 命令结果的 md5sum

linux - 将字符串作为整数进行比较的 bash 脚本语法

bash - 按日期更改嵌套文件结构到文件名

java - 如何在 JFrame 运行时暂停另一个 JFrame

java - JPanel 不显示图形

java - 使用 Fast-Video-View 自动启动视频

linux - 如何将文件复制到子目录?

mysql - 我正在使用 Ubuntu、XAMPP、MySQL 和 Geany。使用 fopen() 时遇到问题;

bash - 在多个 UNIX 环境中处理 PATH 的最佳/常规方法

java - 设置 JTableHeader 持有者背景颜色