如何在Linux中终止进程
您是否曾经遇到过启动应用程序的情况,而在使用该应用程序时突然变得无响应并意外崩溃了? 您尝试再次启动该应用程序,但是没有任何反应,因为原始应用程序进程从未真正完全关闭。
好吧,这在某个时刻发生在我们所有人身上,不是吗? 解决方案是终止或终止应用程序进程。 但是如何?
幸运的是,Linux中有多个实用程序可让您杀死错误的进程。
在本文中,我们将向您展示如何使用 kill
, killall
和 pkill
命令以终止Linux中的进程。
这些工具之间的主要区别在于 kill
根据进程ID号(PID)终止进程,而 killall
和 pkill
命令根据其名称和其他属性终止正在运行的进程。
普通用户可以杀死自己的进程,但不能杀死属于其他用户的进程,而根用户可以杀死所有进程。
系统终止信号
kill
, killall
和 pkill
将给定信号发送到指定的过程或过程组。 如果未指定信号,则每个工具都会发送 15
(TERM
)。
最常用的信号是:
1
(-HUP):重新加载进程。9
(-KILL):杀死一个进程。15
(-TERM):正常停止一个进程。
可以用三种不同的方式指定信号:
- 使用数字(例如-1)
- 带有“ SIG”前缀(例如,-SIGHUP)
- 不带“ SIG”前缀(例如-HUP)。
使用 -l
列出所有可用信号的选项:
kill -l # or killall -l
下面概述的步骤将适用于所有Linux发行版。
使用终止程序 kill
命令#
终止进程 kill
首先,您需要找到进程PID。 您可以使用其他命令来执行此操作,例如 top
, ps
, pidof
和 pgrep
。
假设Firefox浏览器已无响应,因此您需要终止浏览器进程。 要查找进程ID,请使用 pidof
命令:
pidof firefox
该命令将打印所有Firefox进程:
2551 2514 1963 1856 1771
当您知道Firefox处理PID以终止所有ID时,请发送 TERM
信号:
kill -9 2551 2514 1963 1856 1771
使用终止程序 killall
命令#
的 killall
命令将终止与指定名称匹配的所有程序。
使用与之前相同的方案,您可以通过键入以下命令来终止Firefox进程:
killall -9 firefox
killall
接受多个选项,例如向给定用户拥有的进程发送信号,将进程名称与正则表达式进行匹配以及创建时间。 您可以通过键入以下内容获得所有选项的列表 killall
(不带任何参数)在您的终端上。
例如,要终止所有以“ sara”用户身份运行的进程,您可以运行以下命令:
sudo killall -u sara
使用终止程序 pkill
命令#
pkill
终止与命令行上给出的模式匹配的进程:
pkill -9 firefox
进程的名称不必完全匹配。
用 pkill
您还可以向给定用户拥有的进程发送信号。 要仅杀死用户“ sara”拥有的firefox进程,请键入:
pkill -9 -u sara firefox
结论#
使用以下命令终止无响应的程序 kill
, killall
和 pkill
命令是一件容易的事。 您只需要知道进程名称或PID。
如果您有任何疑问或反馈,请随时发表评论。
杀死终端