gpt4 book ai didi

linux - 仅杀死特定 Java jar 的进程(实例)

转载 作者:IT王子 更新时间:2023-10-29 00:37:43 24 4
gpt4 key购买 nike

我需要创建自动脚本,它会终止特定 Java JAR 的运行进程。

我是这样手动操作的:

jps -v

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

我根据 JAR 名称(例如 myJarToKill.jar)选择特定进程并运行以终止它们。

kill 4573 4576  

是否有可能通过 grep 或类似这样的方式获取此进程的数量?将其传递给 kill 命令?

最佳答案

要使用的命令是 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}'

Note: $2 means that the ps output is splitted in space separated field. So when you run the command for the first time please check that awk '{print $2}' output is the expected result otherwise you should change the field number $2 with the ones that you need.

如果“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 

Note: you could also use kill -TERM it's depend by your needs.

问候克劳迪奥

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com