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
USERenvironment variable, if it is empty it exits 100. -
It reads the
USERTREEenvironment variable, if it is empty it exits 100. -
It reads the
BUNDLEenvironment variable, defaulting todefaultif empty. -
It reads the
PATHenvironment variable, defaulting to/command:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/libexec:/usr/local/libexecif empty. -
if
${USER}/${USERTREE}subdirectory of the runtime directory olready existis, it exits 100. -
It sets the
HOMEenvironment variable based on the result of homeof. -
It prepends
${HOME}/.local/bin:to thePATHenvironment variable. -
It sets the
UID,GIDandGIDLISTenvironment variables using s6-envuidgid. -
It runs
prepare-svscanwith the proper arguments. -
Finally, it executes into
s6-svscanon the scandir represented by the${USER}/${USERTREE}/servicesubdirectory 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.
