sys-pctl man page on Inferno

Man page or keyword search:  
man Server   579 pages
apropos Keyword Search (all sections)
Output format
Inferno logo
[printable version]

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  mes‐
       sage 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 descrip‐
	      tors are closed except those listed in movefd,  which  are  pre‐
	      served  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  descrip‐
	      tors  listed  in movefd are closed in the old group.  After this
	      call, changes the process makes to its set of open file descrip‐
	      tors 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 directory, of	the  new  name
	      space.  The current directory is unaffected by this call.

       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 implemented 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  con‐
	      trolled: 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 containing a copy
	      of the current environment variables.  After this call,  changes
	      the  process makes to its environment will not affect other pro‐
	      cesses.

       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)

								   SYS-PCTL(2)
[top]

List of man pages available for Inferno

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net