手册页部分 1: 用户命令

退出打印视图

更新时间: 2014 年 7 月
 
 

preap(1)

名称

preap - 强制僵尸进程的父进程收割僵尸进程

用法概要

preap [-F] pid...

描述

僵尸进程是其退出状态尚未由其父进程收割的进程。退出状态是经由 wait(3C)waitid(2)waitpid(3C) 系统调用收割的。在正常的系统运行过程中,可能会出现僵尸进程,但通常是比较短暂的。如果父进程没有收割其部分或所有子进程的退出状态就退出,则会出现这种情况。在这种情况下,这些子进程将重新认 PID 1 为父。请参见 init(1M),它定期收割此类进程。

不可靠的父进程无法花很长的时间退出,这样,就将僵尸进程留在了系统上。因为操作系统在进程成为僵尸进程之前几乎已毁坏了其所有组件,所以这些僵尸进程通常不会影响系统运行。不过,它们的确会消耗少量系统内存。

preap 强制 pid 指定的进程的父代 waitid(3C) pid(如果 pid 表示一个僵尸进程)。

在下列情况下,preap 会尝试阻止管理员轻率地收割即将由其父进程收割的子进程:

  • 该进程是 init(1M) 的子进程。

  • 父进程已停止并且可能会在再次允许它运行时拜访子进程。

  • 进程的僵死时间少于一分钟。

选项

支持以下选项:

–F

强制父进程收割子进程,不管安全检查。

操作数

支持下列操作数:

pid

进程 ID 列表。

用法

使用 –F 标志时应谨慎。在一个被调试的进程上施加两个控制进程可能会导致混乱。仅当主控制进程(通常是调试器)已停止了被调试的进程,并且在应用 proc 工具的可疑时刻主控制进程未在执行任何操作,才能保证安全。

退出状态

输出被收割的每个目标进程的退出状态的 preap 返回以下退出值:

0

操作成功。

非零

失败,例如没有这样的进程、权限遭拒或选项无效。

属性

有关下列属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
system/extended-system-utilities

另请参见

proc(1)init(1M)waitid(2)wait(3C)waitpid(3C)proc(4)attributes(5)

警告

应慎用 preap,只有在管理员或开发人员确认僵尸进程不会由父进程进行收割时,才可使用。否则,应用 preap 可能会对父进程造成不可预测的损害。