As the Debian buster release approaches I thought it was a good time to take stock of the alternative init systems available in Debian.
The choices are decided by the init metapackage, which has three possible dependencies in buster:
- systemd (systemd-sysv)
- sysvinit (sysvinit-core)
- runit (runit-init)
To change PID1 simply install one of the alternative dependencies.
The old systemd-shim package was orphaned almost three years ago[1] and has now been removed from buster so it is no longer possible to have systemd co-installed with the alternatives.
At the moment, to use either sysvinit or runit as PID1 (init) it is necessary to add your user to the input group to allow the keyboard & mouse and other input devices to work in the graphical desktop:
Code: Select all
# adduser $user input
Note that this is not advisable for a multi-user system because input device snooping then becomes a trivial matter for all users.
I should probably submit a bug report about this but I am worried about getting the alternatives removed (again). Hopefully it will be sorted for the official release.
It is also possible to use OpenRC for process supervision if sysvinit is running as PID1, simply installing the openrc package makes the switch automatically and allows for full process supervision (which is not available with pure sysvinit).
Likewise, the plain runit package can perform process supervision for sysvinit but I don't really see the point of this now that runit-init is an option.
Of the three options I prefer runit-init because of the tiny codebase, especially compared to the systemd behemoth.
FAQ here: http://smarden.org/runit/faq.html