在 Linux 中如何强制停止进程?kill 和 killall 命令有什么区别?

举报
wljslmz 发表于 2022/07/28 00:17:32 2022/07/28
【摘要】 在日常工作中,您会遇到两个用于在 Linux 中强制结束程序的命令;kill和killall。 虽然许多 Linux 用户都知道 kill 命令,但知道并使用 killall 命令的人并不多。 这两个...

在日常工作中,您会遇到两个用于在 Linux 中强制结束程序的命令;killkillall

虽然许多 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 &

  
 
  • 1
  • 2
  • 3

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

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

kill PID1

  
 
  • 1

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

killall evince

  
 
  • 1

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

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

你应该使用哪一个?kill还是killall?

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

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

文章来源: blog.csdn.net,作者:wljslmz,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_43025343/article/details/123919184

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。