man(1) Manual page archive

 SYS-PCTL(2) SYS-PCTL(2)
 NAME
 pctl - process control
 SYNOPSIS
 include "sys.m";
 sys := load Sys Sys->PATH;
 pctl: fn(flags: int, movefd: list of int): int;
 DESCRIPTION
 A newly spawned Limbo process (also known as a thread)
 shares with its parent process a number of resources and
 properties, such as file name space, open file descriptors,
 current working directory, and so on. Pctl controls this
 sharing, allowing a process to gain a copy of a resource
 rather than to share it, to start with a null resource, and
 so on.
 The set of processes sharing a property are called a group;
 for example the set of processes sharing a name space are
 called a name space group. Each process is a member of a
 process group, typically the set of threads functioning as a
 single program. All the members of a process group may be
 terminated at once using the killgrp control message in the
 prog(3) device.
 A call to pctl affects the calling process and, indirectly
 according to flags, any other processes sharing properties
 with it. The flags to pctl are:
 NEWFD Give the process a new file descriptor group. All
 file descriptors are closed except those listed in
 movefd, which are preserved in the new group.
 After this call, changes the process makes to its
 set of open file descriptors will not be visible to
 other processes.
 FORKFD Place the process in a new file descriptor group
 containing a copy of the current set of file
 descriptors. The file descriptors listed in movefd
 are closed in the old group. After this call,
 changes the process makes to its set of open file
 descriptors will not be visible to other processes.
 NEWNS Place the process in a new file name space group in
 which the current directory is made the root direc-
 tory, `/', of the new name space. The current
 directory is unaffected by this call.
 SYS-PCTL(2) SYS-PCTL(2)
 FORKNS Place the process in a new file name space group
 containing a copy of the current name space. After
 this call, changes the process makes to its name
 space, including chdir calls, will not affect other
 processes.
 NODEVS Set the current file name space group to prevent
 subsequent access to the roots of file trees imple-
 mented by a device driver (ie, the use of path
 names beginning with #, as described by intro(3)).
 Even after NODEVS the following devices can be
 attached, which are either private or can be
 separately controlled: pipe(3), env(3), srv(3) and
 ssl(3).
 NEWENV Place the process in a new empty environment group
 containing no environment variables. After this
 call, changes the process makes to its environment
 will not affect other processes.
 FORKENV Place the process in a new environment group con-
 taining a copy of the current environment vari-
 ables. After this call, changes the process makes
 to its environment will not affect other processes.
 NEWPGRP Establish a new process group with a group id equal
 to that of the pid of the calling process.
 The Inferno shell sh(1) uses FORKFD when starting a command;
 its pctl built-in (see sh-std(1)) can invoke the other
 effects when needed. The window manager wm(1) uses
 NEWPGRP|FORKFD when starting a window manager application.
 A network server might use NEWPGRP|FORKNS|FORKFD|FORKENV to
 insulate itself completely from services it starts.
 The return value of pctl is the numerical process id of the
 calling process, which can be used for example to access its
 prog(3) files.
 SEE ALSO
 sh-std(1), sys-intro(2)

AltStyle によって変換されたページ (->オリジナル) /