diff options
author | Andreas Kling <kling@serenityos.org> | 2020-08-04 13:51:11 +0200 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2020-08-04 18:17:16 +0200 |
commit | 7de831efc65993c44c9e87342a08f6a122250794 (patch) | |
tree | c13e3ae3fa83693eec89be1a1414ebd7ef582b9d /Base | |
parent | 83a4fbf5481322989e2e4a83a13a3fc570130c9a (diff) | |
download | serenity-7de831efc65993c44c9e87342a08f6a122250794.zip |
Kernel+LibC: Add sys$disown() for disowning child processes
This syscall allows a parent process to disown a child process, setting
its parent PID to 0.
Unparented processes are automatically reaped by the kernel upon exit,
and no sys$waitid() is required. This will make it much nicer to do
spawn-and-forget which is common in the GUI environment.
Diffstat (limited to 'Base')
-rw-r--r-- | Base/usr/share/man/man2/disown.md | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/Base/usr/share/man/man2/disown.md b/Base/usr/share/man/man2/disown.md new file mode 100644 index 0000000000..8416029865 --- /dev/null +++ b/Base/usr/share/man/man2/disown.md @@ -0,0 +1,25 @@ +## Name + +disown - disown a child process + +## Synopsis + +```**c++ +#include <serenity.h> + +int disown(pid_t pid); +``` + +## Description + +`disown()` unparents a child process of the calling process. The child's parent PID is set to zero, which allows the kernel to automatically reap it upon death. + +## Pledge + +In pledged programs, the `proc` promise is required for this system call. + +## Errors + +* `ESRCH`: No process with PID `pid` was found. +* `ECHILD`: The target process is not a child of the calling process. + |