向进程发送信号:kill、killall 和 top

kill、killall

这两个命令是用来向进程发送信号的。kill 命令需要进程号作为参数,而 killall 需要进程名称。

另外,还可以在这两个命令后附加要发送信号序号作为参数。默认情况下,它们都向相关进程发送信号 15 (TERM)。例如,如果您想要终止 PID 为 785 的进程,请输入以下命令:

$ kill 785

如果您要向它发送信号 19 (STOP),请输入:

$ kill -19 785

假设您知道想要终止的进程的命令名称。您可以通过该名称来终止它,而不用再使用 ps 找出该进程的进程号:

$ killall -9 mozilla

无论如何,您只能终止您自己的进程(除非您是 root),因此当您运行多用户系统时您不必担心您“邻居”的进程,它们不会受到影响。

综合 ps 和 kill:top

top 程序同时完成 pskill 的功能,并能用于实时监控进程的 CPU 和内存使用状况、执行时间等等。如图 6.1 “用 top 监控进程”所示。

图 6.1. 用 top 监控进程

用 top 监控进程

top 工具完全使用键盘控制。按下 h 就能访问其帮助信息。其最有用的命令如下:

  • k:用于向某进程发送信号。top 随后会询问您进程的 PID 以及要发送的信号序号或信号名称(默认为 TERM,即信号 15);

  • M:按照内存使用情况(%MEM 列)对进程排序;

  • P:按照 CPU 使用时间(默认为 %CPU 列)对进程排序;

  • u:显示给定用户的进程。top 会向您询问是哪个用户。请输入该用户的名称,而不是他的 UID。如果您没有输入任何名称,将显示所有进程;

  • i:默认显示所有进程,包括睡眠进程。而这条命令确保只显示当前正在运行的进程(STAT 列为 R (运行)的那些进程)。再次输入该命令将返回显示所有进程。

  • r:改变选中进程的优先级别。