kill 命令

用途
发送一个信号到正在运行的进程。

语法
要向进程发送信号,请输入:

kill [  -s { SignalName | SignalNumber } ] ProcessID ...
kill [  - SignalName |  - SignalNumber ] ProcessID ...
要列示信号名称,请输入:
kill -l [ ExitStatus ]

描述

kill 命令发送一个信号(缺省,SIGTERM 信号)到一个正运行的程序。缺省操作一般是停止进程。如果想停止一个进程,在 ProcessID 变量中指定进程标识(PID)。这个 shell 报告每个在后台运行的进程的 PID(除非在一个管道上启动多个进程,这个种情况下,shell 报告最后一个进程号)。还可用 ps 命令来发现命令的进程标识号。

root 用户可用 kill 命令来停止任何进程。如果您并非 root 用户,那么您要停止的进程必须已由您启动。

SignalName 以大小写无关的方式被辨认,无 SIG 前缀。

如果指定的 SignalNumber 是 0,kill 命令检查指定 PID 的有效性。

标志
项目 描述
-s{SignalName | SignalNumber} 将信号指定为信号数或信号名,例如为 SIGKILL 信号指定 -9 或KILL。
-SignalName 指定信号名称,例如,HUP。
-SignalNumber 指定一个信号数。
注: 在语法中要用缺省的信号指定负 PID,必须指定 - - 作为一个信号。否则,第一个操作数被解释为一个 SignalNumber。
ProcessID 指定十进制整数,该整数表示要对其发送信号的进程或进程组。如果 PID 是一个正值,kill 命令发送进程 ID 与 PID 相等的进程。如果 PID 值为 0,那么 kill 命令会向其进程组标识与发送者进程组标识相同的所有进程发送信号。不发送信号到 PID 为 0 或 1 的进程。如果 PID 是 -1,kill命令发送信号到所有由发送者的有效用户所有的进程。不发送信号到 PID 为 0 或 1 的进程。如果信号为非 -1 的负数,kill 命令发送信号到进程组标识等于 PID 绝对值的所有进程。
-l 列示实现支持的所有信号名称
-lExitStatus 列示已去掉公共 SIG 前缀的信号名。如果 ExitStatus 为十进制整数值,那么会显示与该信号对应的信号名。如果 ExitStatus 是一个对应于由这个信号终止的进程的退出状态值,那么显示对应于这个终止这个进程的信号的名称。
退出状态
此命令返回以下退出值:
项目 描述
0 对每个 ProcessID 操作数至少发现一个匹配的进程,并且指定的信号至少为一个匹配的进程成功处理。
>0 发生了错误。

示例

  1. 要停止给定进程,请输入以下命令:

    kill 1095
    

    这个通过发送缺省的 SIGTERM 信号到进程 1095 来停止它。注:如果进程 1095 已经做了特殊安排来忽略或覆盖 SIGTERM 信号,这个进程实际可能不停止。

  2. 要停止若干忽略缺省信号的进程,请输入以下命令:

    kill -kill 2098 1569
    

    这个发送信号 9,即 SIGKILL 信号,来处理 20981569SIGKILL 信号是个通常不能被忽略或覆盖的特殊信号。

  3. 要停止所有进程并注销您自己,请输入以下命令:

    kill -kill 0
    

    这会向其进程组标识与发送者进程组标识相同的所有进程发送信号 9,即 SIGKILL 信号。因为登录 shell 程序无法忽略 SIGKILL 信号,所以此命令还会停止登录 shell 程序并使您注销。

  4. 要停止您拥有的所有进程,请输入以下命令:

    kill -9 -1
    

    此命令将信号 9(SIGKILL 信号)发送到有效用户拥有的所有进程,即使是那些在其他工作站上启动以及属于其他进程组的进程也是如此。如果一个您请求的列表正被打印,它也被停止。

  5. 要向进程发送另一信号代码,请输入以下命令:

    kill  -USR1  1103
    

    kill 命令的名称是一个误导,因为许多信号,包括 SIGUSR1,并不停止进程。对 SIGUSR1 执行的操作由您正在运行的特定应用程序定义。

** > 注:**要发送信号 15,或用这种形式的 kill 命令发送 SIGTERM 信号,必须明确地指定 -15 或 TERM

你可能感兴趣的:(kill 命令)