The user goetia-shutdown service
The user goetia-shutdown service is used to tear down user supervision trees. Upon being started it:
-
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 checks whether the subdirectory
${USER}/${USERTREE}of the user runtime directory exists. If not, meaning no user supervision tree is running, it exits 0. - It makes all of its stdout and stderr go to the s6-svscan-log of the user supervision tree.
- It stops all services managed by s6-rc.
- It sends SIGHUP to s6-svscan-log of the user supervision tree. This is important, since s6-svscan will keep the fifo open, waiting for s6-svscan-log to exit, which in turn waits for EOF before exiting itself. SIGHUP tells s6-svscan-log to immediatly exit.
- It tells s6-svscan to stop all remaining services and exit.
