Linux kill命令教程:如何优雅地终止进程(附实例详解和注意事项)

Linux kill命令介绍

kill 是一种在 Linux(Bourne-derived shells,如 Bash 和 Zsh)中用于终止执行进程的命令。它发送一个信号给指定的进程或进程组,使其按照信号的要求行动。该命令位于 /bin/kill,如果用户在键入 kill 命令时没有明确指定要发送的信号,则会发送一个默认的 TERM 信号来终止这个进程。

Linux kill命令适用的Linux版本

kill命令适用于各种Linux发行版,包括Debian, Ubuntu, Alpine, Arch Linux, Kali Linux, RedHat/CentOS, Fedora, Raspbian等。要在这些系统中安装或更新kill命令,只需要使用对应系统的包管理器并输入适当的命令。例如,在Debian和Ubuntu中,你可以使用apt-get命令,而在Fedora和RHEL/CentOS中,则可以使用dnf或yum命令。注意CentOS 7和CentOS 8的安装命令略有不同。

安装kill命令的方式如下:

[linux@bashcommandnotfound.cn ~]$ sudo apt-get install procps     #Debian/Ubuntu系统
[linux@bashcommandnotfound.cn ~]$ sudo dnf install procps-ng     #Fedora 22+系统
[linux@bashcommandnotfound.cn ~]$ sudo yum install procps        #Older Fedora/RHEL/CentOS

对于CentOS 7,会使用yum作为包管理器,而CentOS 8则使用dnf。

Linux kill命令的基本语法

基本语法如下:

kill [options] pid

Linux kill命令的常用选项或参数说明

以下表格中描述了 kill 命令的一些最常用的选项:

Option Description
-l 列出所有可能的信号
signal 终止指定的信号
pid 进程号

Linux kill命令实例详解

实例1:终止一个进程

[linux@bashcommandnotfound.cn ~]$ kill 1234

实例2:列出所有的信号

[linux@bashcommandnotfound.cn ~]$ kill -l

实例3:发送特定的信号到进程

[linux@bashcommandnotfound.cn ~]$ kill -9 1234

实例4:发送自定义信号

TERM是kill发送给应用程序/进程的默认信号。然而,如果你愿意,你可以使用-s命令行选项发送kill支持的任何其他信号。例如,如果一个进程对TERM信号没有响应(这允许进程在退出前进行最后的清理),你可以选择KILL信号(这不让进程进行任何清理)。在这种情况下,你需要运行以下命令。

[linux@bashcommandnotfound.cn ~]$ kill -s KILL [pid]

实例5:使用kill命令发送STOP信号

我们可以使用kill命令发送STOP信号来暂停一个进程。例如,如果我们想暂停’gthumb’进程,我们可以首先使用ps命令获取应用程序的pid,然后将其传递给kill命令进行暂停。

[linux@bashcommandnotfound.cn ~]$ ps -ef | grep gthumb
[linux@bashcommandnotfound.cn ~]$ kill -s STOP [pid]

实例6:使用kill命令发送CONT信号

如果我们已经使用STOP信号暂停了一个进程,我们可以使用CONT信号来恢复该进程。例如,如果我们想恢复’gthumb’进程,我们可以首先使用ps命令获取应用程序的pid,然后将其传递给kill命令进行恢复。

[linux@bashcommandnotfound.cn ~]$ ps -ef | grep gthumb
[linux@bashcommandnotfound.cn ~]$ kill -s CONT [pid]

实例7:使用kill命令发送USR1信号

USR1USR2是两个用户定义的信号,它们没有预定义的行为,所以应用程序可以使用它们来执行任何特定的任务。例如,如果我们想向’gthumb’进程发送USR1信号,我们可以首先使用ps命令获取应用程序的pid,然后将其传递给kill命令进行发送。

[linux@bashcommandnotfound.cn ~]$ ps -ef | grep gthumb
[linux@bashcommandnotfound.cn ~]$ kill -s USR1 [pid]

Linux kill命令的注意事项

  • 当你使用kill命令时,需要注意,负的PID值被用来表示进程组ID。如果你传递一个进程组ID,那么该组中的所有进程都将接收到信号。
  • PID为-1是非常特殊的,因为它表示除了kill进程本身和init(所有进程在系统上的父进程)之外的所有进程。
  • bash: kill: command not found,您需要根据上文给出的命令进行安装。

Linux kill相关命令

最近更新

  1. TCP协议是安全的吗?

    2024-01-31 12:20:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-31 12:20:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-31 12:20:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-31 12:20:02       20 阅读

热门阅读

  1. 大厂 Go 工程师面试题集锦.

    2024-01-31 12:20:02       32 阅读
  2. Oracle 备份 还原 导入 导出 数据库

    2024-01-31 12:20:02       31 阅读
  3. MacOS 14.3 安装 brew

    2024-01-31 12:20:02       40 阅读
  4. 网络安全运营专家的职业发展路径

    2024-01-31 12:20:02       32 阅读
  5. C. Infected Tree -树形dp

    2024-01-31 12:20:02       42 阅读