switch to s6-linux-init and s6-rc
This is at the point where it runs a getty and a pile of s6-supervise processes, though it doesn't seem to run the things being supervised
This commit is contained in:
parent
6be5b90c96
commit
45025f128a
12 changed files with 404 additions and 22 deletions
42
pkgs/s6-init-files/scripts/rc.init
Executable file
42
pkgs/s6-init-files/scripts/rc.init
Executable file
|
@ -0,0 +1,42 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
rl="$1"
|
||||
shift
|
||||
|
||||
### argv now contains the arguments of the kernel command line that are
|
||||
### not of the form key=value. (The key=value arguments were stored by
|
||||
### s6-linux-init into an envdir, if instructed so via the -s option.)
|
||||
### Normally this argv remains unused because programs that need the
|
||||
### kernel command line usually read it later on from /proc/cmdline -
|
||||
### but just in case, it's available here.
|
||||
|
||||
|
||||
### 1. Early preparation
|
||||
### This is done only once at boot time.
|
||||
### Ideally, this phase should just initialize the service manager.
|
||||
|
||||
### If your services are managed by s6-rc:
|
||||
### (replace /run/service with your scandir)
|
||||
s6-rc-init /run/service -d -c /etc/s6-rc/compiled
|
||||
|
||||
|
||||
### 2. Starting the wanted set of services
|
||||
### This is also called every time you change runlevels with telinit.
|
||||
### (edit the location to suit your installation)
|
||||
### By default, $rl is the string "default", unless you changed it
|
||||
### via the -D option to s6-linux-init-maker.
|
||||
### Numeric arguments from 1 to 5 on the kernel command line will
|
||||
### override the default.
|
||||
|
||||
exec /etc/s6-linux-init/current/scripts/runlevel "$rl"
|
||||
|
||||
|
||||
### If this script is run in a container, then 1. and 2. above do not
|
||||
### apply and you should just call your CMD, if any, or let your
|
||||
### services run.
|
||||
### Something like this:
|
||||
|
||||
# if test -z "$*" ; then return 0 ; fi
|
||||
# $@
|
||||
# echo $? > /run/s6-linux-init-container-results/exitcode
|
||||
# halt
|
19
pkgs/s6-init-files/scripts/rc.shutdown
Executable file
19
pkgs/s6-init-files/scripts/rc.shutdown
Executable file
|
@ -0,0 +1,19 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
|
||||
### Things to do before hardware halt/reboot/poweroff.
|
||||
### Ideally, it should be a single call to the service manager,
|
||||
### telling it to bring all the services down.
|
||||
|
||||
### If your s6-linux-init-maker invocation was made with the -1
|
||||
### option, messages from rc.shutdown will appear on /dev/console
|
||||
### as well as be logged by the catch-all logger.
|
||||
### If your s6-linux-init-maker invocation did NOT include the -1
|
||||
### option, messages from rc.shutdown will only be logged by the
|
||||
### catch-all logger and will NOT appear on /dev/console. In order
|
||||
### to print them to /dev/console instead, you may want to
|
||||
### uncomment the following line:
|
||||
exec >/dev/console 2>&1
|
||||
|
||||
### If your services are managed by s6-rc:
|
||||
exec s6-rc -v2 -bDa change
|
18
pkgs/s6-init-files/scripts/rc.shutdown.final
Executable file
18
pkgs/s6-init-files/scripts/rc.shutdown.final
Executable file
|
@ -0,0 +1,18 @@
|
|||
#!/nix/store/xbdqbi2mscmhl5wcpbgpjdwxbsrvpkil-bash-5.1-p16/bin/sh -e
|
||||
|
||||
### Things to do *right before* the machine gets rebooted or
|
||||
### powered off, at the very end of the shutdown sequence,
|
||||
### when all the filesystems are unmounted.
|
||||
|
||||
### This is a last resort hook; normally nothing should be
|
||||
### done here (your rc.shutdown script should have taken care
|
||||
### of everything) and you should leave this script empty.
|
||||
|
||||
### Some distributions, however, may need to perform some
|
||||
### actions after unmounting the filesystems: typically if
|
||||
### an additional teardown action is required on a filesystem
|
||||
### after unmounting it, or if the system needs to be
|
||||
### pivot_rooted before it can be shut down, etc.
|
||||
|
||||
### Those are all exceptional cases. If you don't know for
|
||||
### certain that you need to do something here, you don't.
|
12
pkgs/s6-init-files/scripts/runlevel
Executable file
12
pkgs/s6-init-files/scripts/runlevel
Executable file
|
@ -0,0 +1,12 @@
|
|||
#!/usr/bin/env sh -e
|
||||
|
||||
### This script is called once at boot time by rc.init, and is
|
||||
### also called by the runleveld service every time the user
|
||||
### requests a machine state change via telinit.
|
||||
### Ideally, it should just be a call to the service manager.
|
||||
|
||||
test "$#" -gt 0 || { echo 'runlevel: fatal: too few arguments' 1>&2 ; exit 100 ; }
|
||||
|
||||
|
||||
### If your services are managed by s6-rc:
|
||||
exec s6-rc -v2 -up change "$1"
|
Loading…
Add table
Add a link
Reference in a new issue