​案例​​:过滤flume对应的进程号

  1. 启动flume进程,进程号为3774

linux 过滤某个应用程序的进程号,并杀死_应用软件

  1. 过滤 flume进程对应的进程号
ps -ef | grep Application

linux 过滤某个应用程序的进程号,并杀死_大数据_02

目标:去除grep命令本身对应的进程

ps -ef | grep Application | grep -v grep

linux 过滤某个应用程序的进程号,并杀死_应用软件_03

  1. 利用awk进行切割
    ​​​awk​​:默认以空格进行切割
ps -ef | grep Application | grep -v grep |awk '{print $2}'

1)切割完成后 第1个字段是atguigu 第2个字段是3774,第3个字段是1,以此类推
2)$2:取出第2个字段

linux 过滤某个应用程序的进程号,并杀死_字段_04


目标:杀死该进程号

  1. 杀死该进程号
ps -ef | grep Application | grep -v grep |awk '{print $2}' | xargs -n1 kill

linux 过滤某个应用程序的进程号,并杀死_大数据_05


​xargs -n1:​​ 一次获取一行(因为可能有多个Application,那么就会有多个进程号),赋给kill

​xargs​​​:表示取出前面命令运行的结果,作为后面命令的输入参数
5. 问题
​​​这个Application,​​好像其他应用软件程序也有。那怎么唯一过滤呢?

linux 过滤某个应用程序的进程号,并杀死_应用软件_06

这一堆东西都可以唯一表示一个进程号。只要找到我们熟悉的字段即可。例如这里我用启动flume时,所需的配置文件名称

linux 过滤某个应用程序的进程号,并杀死_应用软件_07


​因为刚才那个节点的进程已经杀死,所以用了其他节点的flume进程​

linux 过滤某个应用程序的进程号,并杀死_配置文件_08