kill 和 killall 命令有什么区别?

从 Linux 论坛到 Linux 模因,您会遇到两个用于在 Linux 中强制结束程序的命令; 杀戮和杀戮。

虽然许多 Linux 用户都知道 kill 命令,但知道并使用 killall 命令的人并不多。

无论如何,这可能会让人们感到困惑。 这两个命令具有相似的名称和相似的目的(结束进程)。

那么,kill 和 killall 有什么区别呢? 你应该使用哪个命令,在什么情况下应该使用它们?

kill 和 killall 命令之间的区别

kill 命令对进程 ID (PID) 起作用,它会终止您为其提供 PID 的进程。 另一方面,killall 命令作用于进程名称,它会杀死所有具有给定进程名称的进程。 为了 example,如果有三个实例 mysqld 运行,killall 将杀死他们三个 killall mysqld 而您必须提供所有三个实例的 PID 才能将命令杀死为 kill PID1 PID2 PID3.

简而言之,kill 命令与 PID(通常是单个 PID)一起使用,而 killall 命令与进程名称一起使用并杀死所有具有该进程名称的进程。

让我在行动中证明这一点。

我启动了一个名为 evince 的程序的三个实例并将其发送到后台(它继续运行但将控制权交还给终端)。

evince &
evince &
evince &

现在,我运行了三个程序,进程名称为 evince,但进程 ID 不同。

要使用 kill 命令强制停止进程,您需要提供所需进程的 PID。

kill PID1

但是,将进程名称提供给 killall 命令,它将终止所有具有该进程名称的正在运行的实例。

killall evince

查看下面的屏幕截图以查看所有正在运行的命令:

正如您在此处所注意到的,您需要知道 kill 命令的进程 ID,并且需要找到 killall 命令的进程名称。

在社交媒体上分享这张图片

你应该使用哪一个? 杀戮还是杀戮?

由于 kill 命令适用于单个进程,因此更安全。 毕竟,在启动 killall 命令之前,您应该确保没有任何您不想杀死的类似名称的进程正在运行。

我希望你现在对 kill 和 killalll 命令有一个清晰的认识。 随意提出问题或建议。