监控进程并“要求”它们终止、暂停、继续等等是可能的。为了理解我们接下来要讨论的实例,我们需要更进一步了解进程。
同文件一样,GNU/Linux 系统中运行的所有进程按照一棵树的形式组织。这棵树的树根是 init -- 一个在启动时就开始运行的系统级进程。系统为每个进程赋予一个序号(PID, 进程号(Process ID))以便唯一标识它们。进程也从其父进程继承 PID (PPID,父进程号(Parent Process ID))。init 的父进程是其本身:init 的 PID 和 PPID 都是 1。
每个 UNIX® 进程都能响应信号。一共有 64 个不同的信号。它们由其序号(从 1 开始编号)或其符号名称(SIGx,其中 x 是该信号的名称)标识。其中的 32 个“高端”信号(33 到 64)是实时信号,它们不在本章的讨论范围内。对于每个信号,进程都能有其自己的表现行动,不过其中不包括以下两个信号:9 号信号(KILL)和 19 号(STOP)。
信号 9 不可恢复地终止某个进程,并不让它有机会正常终止。碰上“死掉的”进程或是出了其他问题的进程,您可以向它们发送该信号。使用 kill -l 命令能够查看所有信号列表。