在我的公司环境中,这个脚本在大量计算机上运行,我偶尔会要求用户杀死,因为它已经不时被锁定。
我在考虑自己杀死它的方法。我注意到我可以使用pslist
远程列出,然后使用pskill
将其删除。
现在问题是,当有人运行多个java应用程序(例如Eclipse,这个应用程序,另一个java.exe应用程序......)时,杀死pslist中的正确应用程序变得很棘手,看起来像这样:
javaw 4214 .. ...
javaw 5000 .. ...
等等。这些是不同的应用程序,但它们都从javaw.exe运行。有没有办法找出他们正在运行的.jar的名称,所以我可以根据它杀死进程?
答案 0 :(得分:6)
您可以使用
列出java进程jps
或
jps -v
Jps是JDK和JRE提供的工具,您可以在JDK_HOME / bin中找到它。 选项-v显示其他信息(JVM启动参数)
答案 1 :(得分:0)
您可以使用jps
。仅凭它本身并不能提供很多有用的信息来识别Java应用程序。您需要一点点额外的细节。
您可以在jps
中使用以下选项,以打印传递给Java应用程序的完整命令行参数(JVM参数和主方法参数),
jps -lvm
参考:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jps.html