Kill 与 Killall:两个 Linux 命令之间的区别
Kill 和 Killall 命令都用于强制停止(终止)Linux 中的进程。了解两个相似命令之间的区别。
从 Linux 论坛到 Linux meme,您会遇到两个在 Linux 中强制结束程序的命令;杀了又杀了。
虽然许多 Linux 用户都知道kill命令,但了解和使用killall命令的人并不多。
无论如何,这可能会让人们感到困惑。这两个命令具有相似的听起来名称和相似的目的(结束进程)。
那么,kill 和killall 有什么区别呢?您应该使用哪个命令以及在什么情况下应该使用它们?
Kill 和 Killall 命令之间的区别
Kill 命令作用于进程 ID (PID),它会终止您为其提供 PID 的进程。另一方面,killall 命令作用于进程名称,它会杀死具有给定进程名称的所有进程。例如,如果正在运行三个 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 和killallll 命令有了清晰的了解。请随意提出问题或建议。