云网牛站
所在位置:首页 > Linux命令 > 杀掉Linux中进程的使用示例:使用ps,kill,killall,pkill,top命令

杀掉Linux中进程的使用示例:使用ps,kill,killall,pkill,top命令

2019-08-08 10:30:10作者:戴均力稿源:云网牛站

当Linux系统中的进程开始表现得很异常时,你需要为了整个系统的运行状况而停止它,以下实用程序将帮助你找到该过程并将其停止。在我们开始之前,正如我们所知,每个Linux进程都有一个进程标识(PID),我们将不得不寻找感兴趣的特定PID,为此,我们可以使用以下工具。

杀掉Linux中进程的使用示例:使用ps,kill,killall,pkill,top命令

 

使用ps命令

此命令报告当前进程的快照。

要列出所有进程,只需运行即可:

$ ps -A

例如,要过滤输出,可以使用管道来获得所需的确切过程:

$ ps aux | grep apa

这将列出其进程名称中包含上述字母的所有进程,从那里,你可以缩小范围并获得罪魁祸首的确切PID。

作为命令库中的替代品,还可以使用pidof或pgrep,如下所示:

$ pidof zsh

这将返回zsh进程的PID:

$ pgrep zsh

这也将返回zsh进程的PID。

发现PID后,下一步是停止该过程,这里有各种工具,例如:kill、killall、pkill、top等,参考Linux进程管理:用kill和killall命令杀死进程

只要你具有自行停止进程的权限,就必须意识到这些命令是有效的,如果你没有足够的权限来杀掉其他用户的进程,它们将无法正常工作,但是你可以杀掉你自己的进程。

root用户是超级用户,可以杀掉属于系统中任何其他用户的任何进程。

 

使用kill命令在Linux上终止进程

kill向进程发送信号,信号可以是:

1、SIGHUP可以用1表示并使进程挂起。

2、SIGKILL可以用9表示,并导致该过程被非常恶意地杀掉。

3、SIGTERM,可以用15表示,并使该过程优雅地被杀掉。

如果执行kill命令时没有选项,则默认使用SIGTERM。

kill的例子:

使用PID 7089终止进程而不保存任何打开的文件:

$ kill -9 7089 

$ kill -SIGKILL 7089

在确保保存所有文件后,使用PID 7080终止进程,这是优雅地杀掉进程:

$ kill -15 7080

$ kill -SIGTERM 7080

你可以利用的另一个命令是killall命令,如果你知道进程的名称,则无需查找其PID, killall按名称杀掉它,如下所示。

有关更多选项,请运行:

$ man kill

 

使用killall命令在Linux上终止进程

killall命令按照上面规定的名称杀掉进程,运行以下命令:

$ killall httpd

要了解更多信息,请查看手册页:

$ man killall

 

使用pkill命令在Linux上终止进程

根据名称和其他属性发出信号流程,pkill的工作方式与killall类似,它的语法很简单:

$ pkill [options] pattern

pkill根据名称和其他属性向进程发送信号。

如果你知道要传递命令的进程的名称以及进程的名称,则使用pkill非常简单,如下所示,它默认使用SIGTERM信号,但如果你愿意,可以改变它:

$ pkill nginx

所有命令选项:

$ pkill --help

用法:

pkill [options] <pattern>

选项:

-  <sig>, - 信号<sig>要发送的信号(数字或名称)

-e, -  echo显示被杀的内容

-c, - 匹配进程的计数

-f, -  fulll使用完整的进程名称来匹配

-g,--pgroup <PGID,...>匹配列出的进程组ID

-G, -  group <GID,...>匹配实际组ID

-i, -  ignore-case匹配大小写不敏感

-n, - 最近选择最近开始

-o, - 最近选择最近最少开始

-P, -  parent <PPID,...>仅匹配给定父级的子进程

-s, -  session <SID,...>匹配会话ID

-t, -  terminal <tty,...>通过控制终端匹配

-u, -  egid <ID,...>匹配有效ID

-U, -  uid <ID,...>按真实ID匹配

-x, - 完全匹配命令名称

-F, -  pidfile <file>从文件中读取PID

如果未锁定PID文件,则-L, -  logpidfile失败

--ns <PID>匹配属于它的进程,名称空间为<pid>

--nslist <ns,...>列出将考虑的命名空间,--ns选项。可用的命名空间:ipc,mnt,net,pid,user,uts

-h, -  help显示此帮助并退出

-V, -  version输出版本信息并退出

参考:用which、nohup、ps、pgrep、pidof、top、kill、pkill来管理进程

 

使用top命令在Linux上终止进程

你可以使用top命令在运行时通过其交互式会话终止进程。

要直接从“top”界面终止进程,请按“k”,它会询问你要杀掉的进程的PID,输入PID并按Enter键:

top - 10:07:55 up 1 day, 22:09,  0 users,  load average: 0.52, 0.58, 0.59

Tasks:   4 total,   1 running,   3 sleeping,   0 stopped,   0 zombie

%Cpu(s):  4.7 us,  3.5 sy,  0.0 ni, 91.0 id,  0.0 wa,  0.7 hi,  0.0 si,  0.0 st

KiB Mem : 16669896 total,  2348244 free, 14092300 used,   229352 buff/cache

KiB Swap: 50331648 total, 49101952 free,  1229696 used.  2443864 avail Mem

PID to signal/kill [default pid = 1] 10000

它默认使用SIGTERM信号,如下所示,只需再次按回车键,top将完成剩下的工作:

top - 10:07:55 up 1 day, 22:09,  0 users,  load average: 0.52, 0.58, 0.59

Tasks:   4 total,   1 running,   3 sleeping,   0 stopped,   0 zombie

%Cpu(s):  4.7 us,  3.5 sy,  0.0 ni, 91.0 id,  0.0 wa,  0.7 hi,  0.0 si,  0.0 st

KiB Mem : 16669896 total,  2348244 free, 14092300 used,   229352 buff/cache

KiB Swap: 50331648 total, 49101952 free,  1229696 used.  2443864 avail Mem

Send pid 10000 signal [15/sigterm]

要了解更多信息,请查看手册页:

$ man top

 

相关主题

在Linux系统中安装fkill、gkill命令的方法

Linux命令子频道
精选文章
热门文章