今天做的事就是用一行shell指令杀死一个不知道pid的进程,比如ssh。
查看ssh进程
ps -aux | grep ssh
发现存在两个名字含有“ssh”的进程。 第一行就是ssh进程,第二行呢?其实是grep。
那么,过滤grep,使用指令:-v代表过滤
grep -v grep
那么,完整的查询指令应该是
ps -aux | grep ssh | grep -v grep
没有失望吧,现在只需要获取PID了。为什么是$2呢? awk指令了解一下。
awk ‘{print $2}’
完整的指令提取PID
ps -aux | grep ssh | grep -v grep | awk '{print $2}'
没错吧, 提取了PID。 不用说都知道,杀死进程的指令是
# 强制杀死进程 kill -9 PID
怎么把前面的输入结果作为kill的参数呢? xargs(将控制台输出的缓存数据作为指令的输入参数)。
ps -aux | grep ssh | grep -v grep | awk '{print $2}' | xargs kill -9
可以看出来,进程被杀死了