RHEL Java 应用程序 - 特定名称而不是通用 java 进程

RHEL Java application - specific name instead of generic java process

我的 RHEL 机器上有一个自定义 Java 应用程序 运行。我是 运行 这个 Java 应用程序,来自 bash exec 脚本,附加了所有参数和选项。结果,我的 Java 应用程序在系统进程中获得了一个通用名称 "java",这对我没有用,因为我想对此进程应用监控(以了解它何时崩溃)并且该名称不是唯一的,而且我可能想部署另一个类似的 Java 应用程序,因此我无法区分它们。

如何为我的 Java 应用程序指定一个特定的唯一名称?

示例从上到下...

pid_no user      20   0  other_info java  
pid_no user      20   0  other_info java  
pid_no user      20   0  other_info java

理想情况下,我希望...

pid_no user      20   0  other_info my_app1  
pid_no user      20   0  other_info my_app2  
pid_no user      20   0  other_info my_app3 

提前致谢。

您似乎有两个相对简单的选择 -

  1. 使用您的 "desired" 应用程序名称创建一个软 link 到 java,并使用该名称启动您的应用程序

例如:

ln -s /usr/bin/java /usr/bin/yourApp
/usr/bin/yourApp {options} YourApp.class
ps -ef |grep yourApp
  1. 在启动时将虚拟参数传递给您的应用程序以标识您的应用程序。

例如:

java {options} -DyourApp="yourApp" YourApp.class
ps -ef |grep yourApp

如果您的目标是监控应用程序,请考虑 jvmtop 之类的方法,或者让应用程序写入心跳日志,然后对其进行监控。