从 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 命令有一个清晰的认识。 随意提出问题或建议。