plucky (2) PR_SET_CHILD_SUBREAPER.2const.gz

Provided by: manpages-dev_6.9.1-1_all bug

NAME

       PR_SET_CHILD_SUBREAPER - set/unset the "child subreaper" attribute of the calling process

LIBRARY

       Standard C library (libc, -lc)

SYNOPSIS

       #include <linux/prctl.h>  /* Definition of PR_* constants */
       #include <sys/prctl.h>

       int prctl(PR_SET_CHILD_SUBREAPER, long set);

DESCRIPTION

       If  set is nonzero, set the "child subreaper" attribute of the calling process; if set is zero, unset the
       attribute.

       A subreaper fulfills the role of init(1) for its descendant processes.  When a process  becomes  orphaned
       (i.e., its immediate parent terminates), then that process will be reparented to the nearest still living
       ancestor subreaper.  Subsequently, calls to getppid(2) in the orphaned process will now return the PID of
       the  subreaper  process,  and when the orphan terminates, it is the subreaper process that will receive a
       SIGCHLD signal and will be able to wait(2) on the process to discover its termination status.

       The setting of the "child subreaper" attribute is not  inherited  by  children  created  by  fork(2)  and
       clone(2).  The setting is preserved across execve(2).

       Establishing a subreaper process is useful in session management frameworks where a hierarchical group of
       processes is managed by a subreaper process that needs to be  informed  when  one  of  the  processes—for
       example,  a  double-forked daemon—terminates (perhaps so that it can restart that process).  Some init(1)
       frameworks (e.g., systemd(1)) employ a subreaper process for similar reasons.

RETURN VALUE

       On success, 0 is returned.  On error, -1 is returned, and errno is set to indicate the error.

STANDARDS

       Linux.

HISTORY

       Linux 3.4.

SEE ALSO

       prctl(2), PR_GET_CHILD_SUBREAPER(2const)