wiki / init / changing-init
Edited () at 2020-08-16 by Alejandro Sior
Changing Init Systems
________________________________________________________________________________
KISS' default init system and service manager are provided by busybox. The
service manager being an independent implementation of runit's utilities. This
default should work with all system configurations though one may still wish to
swap to the init system and service manager of their choosing.
This is very easily done via the package manager's alternatives system as
nothing is tightly coupled or dependent on a specific init or service manager.
[0.0] Index
________________________________________________________________________________
- Rebooting after switching init systems [1.0]
- runit [2.0]
- Hummingbird [3.0]
- Setting up runsvdir [3.1]
[1.0] Rebooting after switching init systems
________________________________________________________________________________
After switching init systems, your running init system may not accept the
new poweroff commands. You will need to reboot/poweroff using the running init's
utilities for the new utilities to work. These commands are for the init system
currently running on your system and not the one you are switching to.
+------------------------------------------------------------------------------+
| Busybox |
+------------------------------------------------------------------------------+
| |
| $ busybox reboot |
| |
+------------------------------------------------------------------------------+
| Runit |
+------------------------------------------------------------------------------+
| |
| $ runit-init 6 |
| |
+------------------------------------------------------------------------------+
| sinit/shinit and Hummingbird |
+------------------------------------------------------------------------------+
| |
| $ kill -s INT 1 |
| |
+------------------------------------------------------------------------------+
[2.0] runit
________________________________________________________________________________
Begin by first verifying that runit is installed.
+------------------------------------------------------------------------------+
| |
| # Available in the Community repository. |
| $ kiss b runit && kiss i runit |
| |
+------------------------------------------------------------------------------+
Finally, use the alternatives system to swap to runit.
+------------------------------------------------------------------------------+
| |
| # See #/package-manager#3.2 for more information. |
| $ kiss a runit /usr/bin/init |
| $ kiss a runit /usr/bin/poweroff |
| $ kiss a runit /usr/bin/reboot |
| |
+------------------------------------------------------------------------------+
[3.0] Hummingbird
________________________________________________________________________________
Make sure to install Hummingbird.
+------------------------------------------------------------------------------+
| |
| # Available in the Community repository. |
| $ kiss b hummingbird-git && kiss i hummingbird-git |
| |
+------------------------------------------------------------------------------+
Then, swap to Hummingbird by using the alternatives system.
+------------------------------------------------------------------------------+
| |
| $ kiss a hummingbird-git /usr/bin/init |
| $ kiss a hummingbird-git /usr/bin/reboot |
| |
+------------------------------------------------------------------------------+
Once you have booted using Hummingbird, take note that the command used to
turn the system off is "shutdown".
[3.1] Setting up runsvdir
____________________________________________________________________________
Hummingbird doesn't provide a service manager, and doesn't read from
inittab either. Some people find it useful to have one, such as runsvdir.
+--------------------------------------------------------------------------+
| |
| $ mkdir /etc/rc.d |
| $ echo 'runsvdir -P /var/service &' > /etc/rc.d/runsvdir.boot |
| |
+--------------------------------------------------------------------------+
________________________________________________________________________________
Dylan Araps (C) 2019-2020
Linux(R) is the registered trademark of Linus Torvalds in the U.S. and
other countries.