我需要创建自动脚本,该脚本会杀死特定Java JAR的运行进程。

我是这样手动进行的:

jps -v

6753 Jps
4573 myJarToKill.jar
4574 notMyJarToKill.jar
4576 myJarToKill.jar

我根据JAR名称选择特定的进程,例如myJarToKill.jar并运行以杀死它们。
kill 4573 4576

是否可以像这样通过grep或sth获取此进程的数量?一个通过它来杀死命令?

最佳答案

使用的命令是grep,awk和xargs unix命令的组合:

jps -v | grep "<your file name>" | grep -v "<if you need to exclude other output>" |awk '{print $<field number>}'|xargs kill -<kill signal>

在执行之前,请阅读以下说明:

首先运行以下命令:
jps -v | grep“myJarToKill.jar” | awk'{print $ 1}'



如果“notMyJarToKill.jar”仍然存在,请添加以下内容:
jps -v  | grep "myJarToKill.jar" | grep -v "notMyJarToKill.jar"| awk '{print $1}'

然后,如果输出结果包含您要杀死的pid,则可以运行此命令
jps -v  | grep "myJarToKill.jar" | awk '{print $1}'|xargs kill -9



问候
克劳迪奥

关于linux - 仅杀死特定Java jar的进程(实例),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34942013/

10-13 08:41