暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

kill 和 killall 命令有什么区别?

TIAP 2022-06-17
1873

kill killall 命令都用于强制停止 Linux 中的进程,我们今天聊聊这两者之间的差异。

许多 Linux 用户都知道 kill 命令,但没有多少人知道并使用 killall 命令。这两个命令可能会让人觉得迷惑,它们名称相同,并且用途也类似(都用于结束进程)。

那么,kill killall 到底有什么区别呢?你应该使用哪个命令,以及在什么情况下使用呢?


kill 和 killall 命令的区别

kill 命令应对的是进程ID(PID),它会根据你提供的 PID 来终止进程。而 killall 针对的是进程名称,它会终止给定进程名称的所有进程。例如,有三个 mysql 实例正在运行,killall 会终止所有的这三个进程:使用 killall mysql 命令;而如果是用 kill 的话,你需要提供这三个实例的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 命令可用于单个进程,因此更安全。在使用 killall 命令之前,你需要确保没有其他类似名称的进程(并且你不想停掉的)正在运行着。


        文章转载自TIAP,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

        评论