Linux 只杀死特定Java jar的进程(实例)
我需要创建自动脚本,它会终止特定Java JAR的运行进程 我是这样手动操作的:Linux 只杀死特定Java jar的进程(实例),linux,bash,grep,kill,Linux,Bash,Grep,Kill,我需要创建自动脚本,它会终止特定Java JAR的运行进程 我是这样手动操作的: jps -v 6753 Jps 4573 myJarToKill.jar 4574 notMyJarToKill.jar 4576 myJarToKill.jar 我根据JAR名称选择特定的进程,例如myJarToKill.JAR,然后运行以杀死它们 kill 4573 4576 有没有可能通过grep或类似的方法获得这些进程的数量?传给杀戮的命令 kill `jps -v |grep myJarToKi
jps -v
6753 Jps
4573 myJarToKill.jar
4574 notMyJarToKill.jar
4576 myJarToKill.jar
我根据JAR名称选择特定的进程,例如myJarToKill.JAR,然后运行以杀死它们
kill 4573 4576
有没有可能通过grep或类似的方法获得这些进程的数量?传给杀戮的命令
kill `jps -v |grep myJarToKill|cut -f1 -d " "`
cut-f1-d”“
是提取第一个“列”的部分。'get executed'中的命令,结果作为要终止的参数提供。要使用的命令是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>
然后,如果输出结果包含要终止的pid,则可以运行此
jps -v | grep "myJarToKill.jar" | awk '{print $1}'|xargs kill -9
注意:您也可以使用kill-TERM
这取决于您的需要
问候
Claudio您可以grep输入jar名称,使用sed只获取号码(删除行的其余部分),然后执行for循环,为每个号码调用kill了解
jps -v | grep "myJarToKill.jar" | awk '{print $1}'|xargs kill -9