Alpine Linux uses OpenRC for its init system.
The following commands are available to manage the init system:
- To check services and their set runlevels:
- To change to a different runlevel:
- Reboot/Halt/Poweroff: (And their equivalent from traditional GNU/Linux systems)
The available runlevels are:
- default - Used if no runlevel is specified. (This is generally the runlevel you want to add services to.)
The special runlevels are:
- sysinit - Brings up system specific stuff such as
/sysfor Linux based systems. It also mounts
/lib/rc/init.das a ramdisk using tmpfs where available unless
/is mounted rw at boot.
/lib/rc/init.dto hold state information about the services it runs. sysinit always runs when the host first starts and should not be run again.
- boot - Generally the only services you should add to the boot runlevel are those which deal with the mounting of filesystems, set the initial state of attached peripherals and logging. Hotplugged services are added to the boot runlevel by the system. All services in the boot and sysinit runlevels are automatically included in all other runlevels except for those listed here.
- single - Stops all services except for those in the sysinit runlevel.
- reboot - Changes to the shutdown runlevel and then reboots the host.
- shutdown - Changes to the shutdown runlevel and then halts the host.
Usage: rc-update [options] add service <runlevel> rc-update [options] del service <runlevel> rc-update [options] show Options: [suChqv] -s, --stack Stack a runlevel instead of a service -u, --update Force an update of the dependency tree -h, --help Display this help output -C, --nocolor Disable color output -v, --verbose Run verbosely -q, --quiet Run quietly
Usage: rc-status [options] [runlevel1] [runlevel2] ... Options: [aclrsuChqv] -a, --all Show services from all run levels -c, --crashed Show crashed services -l, --list Show list of run levels -r, --runlevel Show the name of the current runlevel -s, --servicelist Show service list -u, --unused Show services not assigned to any runlevel -h, --help Display this help output -C, --nocolor Disable color output -v, --verbose Run verbosely -q, --quiet Run quietly
Usage: rc-service [options] Options: [e:ilr:ChqVv] -e, --exists <arg> tests if the service exists or not -i, --ifexists if the service exists then run the command -l, --list list all available services -r, --resolve <arg> resolve the service name to an init script -h, --help Display this help output -C, --nocolor Disable color output -V, --version Display software version -v, --verbose Run verbosely -q, --quiet Run quietly
Usage: rc [options] Options: [a:o:s:SChqVv] -a, --applet <arg> runs the applet specified by the next argument -o, --override <arg> override the next runlevel to change into when leaving single user or boot runlevels -s, --service <arg> runs the service specified with the rest of the arguments -S, --sys output the RC system type, if any -h, --help Display this help output -C, --nocolor Disable color output -V, --version Display software version -v, --verbose Run verbosely -q, --quiet Run quietly
Preventing slow services from delaying boot
Services that take a while to start will block the boot process until they complete. E.g.:
networking might delay startup of an interactive system rather than start in the background.
You can enable cgroups v2 by editing /etc/rc.conf and setting rc_cgroup_mode to unified.