I'm on Ubuntu 10.10, and I've just joined the Linux world coming from OS X.
I'm learning about runlevels and the rc
directory in /etc/
, and everywhere (manuals, tutorials, etc) I'm reading about inittab
. But I can't find it in my Ubuntu installation. Why? Does Ubuntu follow the runlevel model? How are rc
and levels loaded without inittab
?
If you do
man inittab
in your terminal, all shall be revealed:Back in the days the "System-V" init service was used in Ubuntu, and it used the
/etc/inittab
file.Some time ago (around 2006) the "Upstart" init service replaced SysV. During these days you could follow the top answer and use
man inittab
to get info on this change.At the time of writing (e.g. for Ubuntu 16.04) the "systemd" boot process is in use and there is no reference left to "inittab" (e.g. if you do
apropos inittab
you'll probably not find anything). Instead you could doman runlevel
to get similar information.Bottom line: the
/etc/inittab
file is nowhere, likely because you use a newer version for Ubuntu that has a different init service, e.g. systemd.While searching this in various forum, I got to know that /etc/inittab is not anymore used in debian distro.
It uses
/etc/init/rc-sysinit.conf
No, it does not follow the runlevel model. Ubuntu has moved away from sysV init to upstart instead. The main reason for this was to parallelize the initialization process to vastly reduce boot time.
As most of the answers here state, That Debian/Ubuntu have switched from sysV to systemd, and systemd has it's own way of managing the boot targets (which was called runlevels) here are the commands used to set the default or switching to another target provided by systemctl:
systemctl isolate
used to switch between targetssystemctl isolate multi-user
switchs to the multi user targetsystemctl isolate graphical
switchs to the graphical interface targetsystemctl get-default
outputs the current default targetsystemctl set-default
changing the default boot targetsystemctl set-default multi-user
will set the default boot target to the multi user target and this will simple get done by creating a symlink/etc/systemd/system/default.target
points to/lib/systemd/system/graphical.target
systemctl set-default graphical
setting back the default boot target to the graphical interfaceResources: amazingly explained by Shawn Powers in this YouTube video