kill 是一种在 Linux(Bourne-derived shells,如 Bash 和 Zsh)中用于终止执行进程的命令。它发送一个信号给指定的进程或进程组,使其按照信号的要求行动。该命令位于 /bin/kill,如果用户在键入 kill 命令时没有明确指定要发送的信号,则会发送一个默认的 TERM 信号来终止这个进程。
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。
基本语法如下:
kill [options] pid
以下表格中描述了 kill 命令的一些最常用的选项:
Option | Description |
---|---|
-l | 列出所有可能的信号 |
signal | 终止指定的信号 |
pid | 进程号 |
[linux@bashcommandnotfound.cn ~]$ kill 1234
[linux@bashcommandnotfound.cn ~]$ kill -l
[linux@bashcommandnotfound.cn ~]$ kill -9 1234
TERM
是kill发送给应用程序/进程的默认信号。然而,如果你愿意,你可以使用-s
命令行选项发送kill支持的任何其他信号。例如,如果一个进程对TERM
信号没有响应(这允许进程在退出前进行最后的清理),你可以选择KILL
信号(这不让进程进行任何清理)。在这种情况下,你需要运行以下命令。
[linux@bashcommandnotfound.cn ~]$ kill -s KILL [pid]
我们可以使用kill
命令发送STOP
信号来暂停一个进程。例如,如果我们想暂停’gthumb’进程,我们可以首先使用ps
命令获取应用程序的pid,然后将其传递给kill
命令进行暂停。
[linux@bashcommandnotfound.cn ~]$ ps -ef | grep gthumb
[linux@bashcommandnotfound.cn ~]$ kill -s STOP [pid]
如果我们已经使用STOP
信号暂停了一个进程,我们可以使用CONT
信号来恢复该进程。例如,如果我们想恢复’gthumb’进程,我们可以首先使用ps
命令获取应用程序的pid,然后将其传递给kill
命令进行恢复。
[linux@bashcommandnotfound.cn ~]$ ps -ef | grep gthumb
[linux@bashcommandnotfound.cn ~]$ kill -s CONT [pid]
USR1
和USR2
是两个用户定义的信号,它们没有预定义的行为,所以应用程序可以使用它们来执行任何特定的任务。例如,如果我们想向’gthumb’进程发送USR1
信号,我们可以首先使用ps
命令获取应用程序的pid,然后将其传递给kill
命令进行发送。
[linux@bashcommandnotfound.cn ~]$ ps -ef | grep gthumb
[linux@bashcommandnotfound.cn ~]$ kill -s USR1 [pid]