'\" te .\" Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved. .TH preap 1 "23 Nov 2011" "SunOS 5.11" "User Commands" .SH NAME preap \- force a defunct process to be reaped by its parent .SH SYNOPSIS .LP .nf \fBpreap\fR [\fB-F\fR] \fIpid\fR... .fi .SH DESCRIPTION .sp .LP A defunct (or zombie) process is one whose exit status has yet to be reaped by its parent. The exit status is reaped by way of the \fBwait\fR(3C), \fBwaitid\fR(2), or \fBwaitpid\fR(3C) system call. In the normal course of system operation, zombies can occur, but are typically short-lived. This can happen if a parent exits without having reaped the exit status of some or all of its children. In that case, those children are reparented to \fBPID 1\fR. See \fBinit\fR(1M), which periodically reaps such processes. .sp .LP An irresponsible parent process can not exit for a very long time and thus leave zombies on the system. Since the operating system destroys nearly all components of a process before it becomes defunct, such defunct processes do not normally impact system operation. However, they do consume a small amount of system memory. .sp .LP \fBpreap\fR forces the parent of the process specified by \fIpid\fR to \fBwaitid\fR(3C) for \fIpid\fR, if \fIpid\fR represents a defunct process. .sp .LP \fBpreap\fR attempts to prevent the administrator from unwisely reaping a child process which might soon be reaped by the parent, if: .RS +4 .TP .ie t \(bu .el o The process is a child of \fBinit\fR(1M). .RE .RS +4 .TP .ie t \(bu .el o The parent process is stopped and might wait on the child when it is again allowed to run. .RE .RS +4 .TP .ie t \(bu .el o The process has been defunct for less than one minute. .RE .SH OPTIONS .sp .LP The following option is supported: .sp .ne 2 .mk .na \fB\fB-F\fR\fR .ad .RS 6n .rt Forces the parent to reap the child, overriding safety checks. .RE .SH OPERANDS .sp .LP The following operand is supported: .sp .ne 2 .mk .na \fB\fIpid\fR\fR .ad .RS 7n .rt Process \fBID\fR list. .RE .SH USAGE .sp .LP Caution should be exercised when using the \fB-F\fR flag. Imposing two controlling processes on one victim process can lead to chaos. Safety is assured only if the primary controlling process, typically a debugger, has stopped the victim process and the primary controlling process is doing nothing at the moment of application of the \fBproc\fR tool in question. .SH EXIT STATUS .sp .LP The following exit values are returned by \fBpreap\fR, which prints the exit status of each target process reaped: .sp .ne 2 .mk .na \fB\fB0\fR\fR .ad .RS 12n .rt Successfully operation. .RE .sp .ne 2 .mk .na \fBnon-zero\fR .ad .RS 12n .rt Failure, such as no such process, permission denied, or invalid option. .RE .SH ATTRIBUTES .sp .LP See \fBattributes\fR(5) for descriptions of the following attributes: .sp .sp .TS tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) . ATTRIBUTE TYPEATTRIBUTE VALUE _ Availabilitysystem/extended-system-utilities .TE .SH SEE ALSO .sp .LP \fBproc\fR(1), \fBinit\fR(1M), \fBwaitid\fR(2), \fBwait\fR(3C), \fBwaitpid\fR(3C), \fBproc\fR(4), \fBattributes\fR(5) .SH WARNINGS .sp .LP \fBpreap\fR should be applied sparingly and only in situations in which the administrator or developer has confirmed that defunct processes are not reaped by the parent process. Otherwise, applying \fBpreap\fR can damage the parent process in unpredictable ways.