Linux xargs kill进程 交叉查询
ps aux | grep ntopng |grep -v grep |cut -c 10-14 |xargs kill -9
-
grep ntopng
:kill掉进程中有ntopng字段 -
grep -v grep
:过滤掉grep 字段 -
cut -c 10-14
:进程列表中10-14 是进程id位置 -
xargs kill -9
: xargs 命令是用来把前面命令的输出结果(PID)作为”kill -9″命令的参数,并执行该命令。”kill -9″会强行杀掉指定进程。
ps -ef | grep ftpd | grep -v grep | wc -l
- “
ps -ef
” 是linux里查看所有进程的命令 - “
grep ftpd
” 的输出结果是,找到含有ftpd的进程 - “
grep -v grep
“是在列出的进程中去除含有关键字”grep”的进程 - “
wc -l
” 统计输出总共多少行
Linux常用命令:xargs,批量杀死进程
有一天,后台的一个定时脚本异常了,由于网络原因导致超时,而且每分钟一个进程。
ps aux | grep main.py
看了所有的进程,试图手动kill掉,可是几十个进程手动kill得累趴去。
root@ubuntu:/home/fage/Desktop/linux-perf-examples/nginx-high-cpu# ps aux | grep main.py root 13110 0.0 0.3 32636 6664 pts/0 S 23:17 0:00 python main.py root 13115 0.0 0.3 32636 6632 pts/0 S 23:17 0:00 python main.py root 13116 0.0 0.3 32636 6572 pts/0 S 23:17 0:00 python main.py root 13117 0.0 0.3 32636 6652 pts/0 S 23:17 0:00 python main.py root 13118 0.0 0.3 32636 6592 pts/0 S 23:17 0:00 python main.py root 13119 0.0 0.3 32636 6552 pts/0 S 23:17 0:00 python main.py root 13120 0.0 0.3 32636 6484 pts/0 S 23:18 0:00 python main.py root 13121 0.0 0.3 32636 6696 pts/0 S 23:18 0:00 python main.py root 13122 0.0 0.3 32636 6424 pts/0 S 23:18 0:00 python main.py root 13123 0.0 0.3 32636 6480 pts/0 S 23:18 0:00 python main.py root 13124 0.0 0.3 32636 6584 pts/0 S 23:18 0:00 python main.py root 13125 0.0 0.3 32636 6592 pts/0 S 23:18 0:00 python main.py root 13126 0.0 0.3 32636 6520 pts/0 S 23:18 0:00 python main.py
这时我们的主角就要登场了
ps axu | grep main.py | awk '{print $2;}' | xargs kill -9
xargs 是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。
xargs 默认的命令是 echo,这意味着通过管道传递给 xargs 的输入将会包含换行和空白,不过通过 xargs 的处理,换行和空白将被空格取代。
如:
root@ubuntu:/home/fage/Desktop# cat test.txt lkjafd askfj asdfj asdj asjf asdfj asj sldfj adfklj asdjklasjf asfj root@ubuntu:/home/fage/Desktop# cat test.txt | xargs lkjafd askfj asdfj asdj asjf asdfj asj sldfj adfklj asdjklasjf asfj
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持IT俱乐部。