在日常工作中,您会遇到两个用于在 Linux 中强制结束程序的命令;kill
和killall
。
虽然许多 Linux 用户都知道 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 和 killalll 命令有一个清晰的认识,随意提出问题或建议。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。