Slight correction to the above answer: Jessie using systemd
does not use runlevels.
If, however you are a luddite or not a fan of (the hydra-like) systemd
(like myself) you may have chosen to stick with the System V init
which is a bit more mature (by a couple of decades?) like what I've done - however even then you may not see much difference when you use sudo telinit #
where # is a different run-level number (or letter?).
On my system, I see the only difference for the run-levels 2 to 5 is that 2 does not run lightdm
i.e. the system that starts X
and presents a GUI login screen does not run in that normal level which is the sort of thing I think you are wanting - to configure the differences there are various tools and for the RPi I see that I have sys-rc-conf(8)
which has both a CLI and a GUI - so read the man
page for that or do an apropos run level
and see what else might be relevant.
Actually the reason I do not use systemd
also has a connection to the fact that my RPi is running with an RPi specific UPS and I have written a daemon that communicates vital information to init
("um, the power has failed and the battery is running out - shutdown now please before it is completely exhausted!") via it's /run/initctl
interface and the systemd
source code for this, instead of doing anything with the messages merely logs: Received UPS/power initctl request. This is not implemented in systemd. Upgrade your UPS daemon!
- and I can't be arsed to do so when the init
API is well defined and works perfectly well for me... 8-)
man init
andman telinit
, obviously it isn't very useful). – goldilocks May 27 '17 at 10:44