Blu*_*zza 5 linux bash grep kill
我需要创建自动脚本,该脚本会杀死特定Java JAR的运行进程。
我是这样手动进行的:
jps -v
6753 Jps
4573 myJarToKill.jar
4574 notMyJarToKill.jar
4576 myJarToKill.jar
Run Code Online (Sandbox Code Playgroud)
我根据JAR名称选择特定的进程,例如myJarToKill.jar并运行以杀死它们。
kill 4573 4576
Run Code Online (Sandbox Code Playgroud)
是否可以像这样通过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>
Run Code Online (Sandbox Code Playgroud)
在执行之前请阅读以下说明:
首先运行:jps -v | grep“myJarToKill.jar”| awk '{打印$1}'
注意:
$2表示 ps 输出被分割在空格分隔的字段中。因此,当您第一次运行该命令时,请检查awk '{print $2}'输出是否是预期结果,否则您应该将字段编号更改$2为您需要的字段编号。
如果“notMyJarToKill.jar”仍然存在,请添加以下内容:
jps -v | grep "myJarToKill.jar" | grep -v "notMyJarToKill.jar"| awk '{print $1}'
Run Code Online (Sandbox Code Playgroud)
然后如果输出结果包含你要杀死的pid,你可以运行这个
jps -v | grep "myJarToKill.jar" | awk '{print $1}'|xargs kill -9
Run Code Online (Sandbox Code Playgroud)
注意:您也可以
kill -TERM根据您的需要使用它。
问候克劳迪奥
| 归档时间: |
|
| 查看次数: |
1820 次 |
| 最近记录: |