aboutsummaryrefslogtreecommitdiffstats
user-init

goetia-base
goetia
Software
0x53.net

The user-init program

user-init starts a user supervision tree for the user defined in the USER environment variable.

Interface

     user-init
  • user-init takes no arguments.
  • It reads the USER environment variable, if it is empty it exits 100.
  • It reads the USERTREE environment variable, if it is empty it exits 100.
  • It reads the BUNDLE environment variable, defaulting to default if empty.
  • It reads the PATH environment variable, defaulting to /command:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/libexec:/usr/local/libexec if empty.
  • if ${USER}/${USERTREE} subdirectory of the runtime directory olready existis, it exits 100.
  • It sets the HOME environment variable based on the result of homeof.
  • It prepends ${HOME}/.local/bin: to the PATH environment variable.
  • It sets the UID, GID and GIDLIST environment variables using s6-envuidgid.
  • It runs prepare-svscan with the proper arguments.
  • Finally, it executes into s6-svscan on the scandir represented by the ${USER}/${USERTREE}/service subdirectory of the user runtime directory.

Exit codes

  • 100 if a critical environment variable is missing.
  • user-init usually executes into s6-svscan which exits according to its documentation.
  • Since user-init is an execline script, it exits with an approximation of employed program that failed.
  • user-init mostly uses execline and s6 software, the exit behaviour of which can be looked up on their respective documentation.
  • See also: execline exit code handling.

Options

  • There are no otions to user-init.

Notes

More information about user supervision trees themselves can be found on the user supervision tree page.