Linux 使用过程中,可能由于程序Bug或误操作导致大量重复的进程,如果一个一个去结束属实挺麻烦,也占用大量的内存不释放。本文主要介绍通过一条命令来批量结束这些重复的进程的方法。

1、Linux进程管理

参考文档:Linux 进程管理

2、使用ps -ef查看所有进程

查找Linux中所有的进程命令如下:

ps -ef

ps命令常用参数:

选项

说明

a

显示现行终端机下的所有程序,包括其他用户的程序

-A

显示所有程序

c

显示每个程序真正的指令名称,而不包含路径

-C <指令名称>

指定执行指令的名称,并列出该指令的程序的状况

-d

显示所有程序,但不包括阶段作业管理员的程序

e

列出程序时,显示每个程序所使用的环境变量

-f

显示UID,PPIP,C与STIME栏位

f

用ASCII字符显示树状结构,表达程序间的相互关系

g

显示现行终端机下的所有程序,包括所属组的程序

-G <群组识别码>

列出属于该群组的程序的状况

h

不显示标题列

-H

显示树状结构,表示程序间的相互关系

-j

采用工作控制的格式显示程序状况

-l

采用详细的格式来显示程序状况

L

列出栏位的相关信息

-m

显示所有的执行绪

n

以数字来表示USER和WCHAN栏位

-N

显示所有的程序,除了执行ps指令终端机下的程序之外

-p <程序识别码>

指定程序识别码,并列出该程序的状况

r

只列出现行终端机正在执行中的程序

-s <阶段作业>

列出隶属该阶段作业的程序的状况

s

采用程序信号的格式显示程序状况

S

列出程序时,包括已中断的子程序资料

-t <终端机编号>

列出属于该终端机的程序的状况

-T

显示现行终端机下的所有程序

u

以用户为主的格式来显示程序状况

-U <用户识别码>

列出属于该用户的程序的状况

U <用户名称>

列出属于该用户的程序的状况

v

采用虚拟内存的格式显示程序状况

-V或V

显示版本信息

-w或w

采用宽阔的格式来显示程序状况

x

显示所有程序,不以终端机来区分

X

采用旧式的Linux i386登陆格式显示程序状况

-y

配合选项”-l”使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位

--cols <每列字符数>

设置每列的最大字符数

--headers

重复显示标题列

--help

在线帮助

--info

显示排错信息

--lines <显示列数>

设置显示画面的列数

3、查找出包含指定关键词的进程

如想要查找所有nginx进程,命令如下:

ps -ef | grep nginx

4、awk获取所有符合条件进程的PID

如想要查找所有nginx进程的PID,命令如下:

ps -ef | grep nginx | awk '{print $2}'

5、使用kill -9 批量结束筛选的进程

使用xargs将PID传入,命令如下:

ps -ef | grep nginx | awk '{print $2}'|xargs kill -9

注意:需要批量关闭其它Linux中的进程,只需要将上面命令中的nginx换成其它命令的中关键词即可。