\input texinfo @c -*-texinfo-*- @c %**start of header @setfilename orphan-reaper.info @settitle orphan-reaper @afourpaper @documentencoding UTF-8 @documentlanguage en @finalout @c %**end of header @dircategory Miscellaneous @direntry * orphan-reaper: (orphan-reaper). Place subreapers in your process tree to keep it structured @end direntry @copying Copyright @copyright{} 2014 Mattias Andrée @quotation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License''. @end quotation @end copying @ifnottex @node Top @top orphan-reaper -- Place subreapers in your process tree to keep it structured @insertcopying @end ifnottex @titlepage @title orphan-reaper @subtitle Place subreapers in your process tree to keep it structured @author by Mattias Andrée (maandree) @page @c @center `' @vskip 0pt plus 1filll @insertcopying @end titlepage @contents @menu * Overview:: Brief overview of @command{orphan-reaper}. * Invoking:: Invocation of @command{orphan-reaper}. * GNU Free Documentation License:: Copying and sharing this manual. @end menu @node Overview @chapter Overview This a daemon spawns a process and reaps all orphaned grandchildren. This is useful if you want to keep your process tree clean. For instance if you want all programs started from inside the same display server instance to appear to be inside that display if you look inside the process tree, rather than all processes that loses their parent being reparented to PID 1 and make a mess on your process tree. @node Invoking @chapter Invoking @command{orphan-reaper} recognises one option: @table @option @item --fatal If this option is used, @command{orphan-reaper} will return with exit value 2 if it is unable to set up a subreaper. If this option is not used, @command{orphan-reaper} will proceed to start the specified command even if it cannot create a subreaper under it. @end table After the optional option you should specify a command in the same mannar as you would start it normally. If the command starts with a dash (-) you must add the argument @option{--} before it. Once @command{orphan-reaper} has configured itself to be a subreaper and spawned the specified command it will reexecute into @command{reapd} (a libexec) to save memory, @command{reapd} does nothing at all except reaping children (processes that they before their parent are automatically reparented by the kernel to be a child of @command{reapd}), and exit with exit value 0 when it no longer have any children (at which point it cannot get any new children). It will also print exit with exit value 2, after it has printed an error message, if it encounters an error. @node GNU Free Documentation License @appendix GNU Free Documentation License @include fdl.texinfo @bye