7

在我的公司环境中,有这个脚本可以在很多计算机上运行,​​我偶尔会要求用户杀死它,因为众所周知它会不时锁定。

我在想办法自己杀死它。我注意到我可以远程列出 usingpslist然后使用pskill.

现在的问题是,当有人运行多个 java 应用程序(例如 Eclipse、此应用程序、另一个 java.exe 应用程序...)时,要在 pslist 中杀死正确的应用程序变得很棘手,看起来像这样:

javaw  4214 .. ...
javaw  5000 .. ...

等等。这些是不同的应用程序,但它们都从 javaw.exe 运行。有没有办法找出他们正在运行的 .jar 的名称,所以我可以根据它终止进程?

4

2 回答 2

7

您可以列出 java 进程

jps

或者

jps -v

Jps 是 JDK 和 JRE 提供的一个工具,你可以在 JDK_HOME/bin 中找到它。选项 -v 显示附加信息(JVM 启动参数)

于 2013-03-04T11:48:18.320 回答
1

您可以使用jps. 它本身并不能提供太多有用的信息来识别 java 应用程序。你需要一点额外的细节。

您可以使用以下选项jps来打印传递给 java 应用程序的完整命令行参数(JVM 参数和主方法参数),

jps -lvm

参考:https ://docs.oracle.com/javase/8/docs/technotes/tools/unix/jps.html

于 2018-07-31T03:14:50.463 回答