What is Runlevel 'S' on Debian/Ubuntu for

All the above seem to skirt round a direct answer to the question asked.

From all I can find, the rcS.d scripts are implemented as is the S stood for "startup" not "single".

They are all run during boot. If you then want to use run level 1, the scripts in rc1.d are run ( which may well be pretty empty, given all the work we just did in rcS )

More to the point, the rcS scripts are run on the way to rc3 - so effectively the system places itself in single-user mode, then has a re-think and decides what it REALLY ought to be doing. Very confusing and mostly ill-documented.

As proof, if you examine /etc/inittab, you find:

 # Boot-time system configuration/initialization script.<br>
 # This is run first except when booting in emergency (-b) mode.
si::sysinit:/etc/init.d/rcS

followed later by many lines resembling:

l3:3:wait:/etc/init.d/rc 3

I look at the runlevels in this way:

 S - true single user mode usually drops you into a minimal root shell
 1 - Administrative mode, you get a standard login request before access
 2 - Multi-user without TCP/IP networking -- could use serial ports for other logins
 3 - Multi-user with TCP/IP networking and text 
 4 - To be determined by the system owner
 5 - Multi-User with TCP/IP networking and graphic console 
 6 - reboot
 0 - shutdown and power down

Thus, a firewall is really needed if TCP/IP is up and running and that generally happens only in Init State 3.


Runlevel 1 is also known as runlevel s.

In Debian based systems this is the single-user / minimal mode. See Debian Runlevel:

The runlevel is a digit from 0 to 6 or the letter S. Runlevels 0, 6 and S are reserved for shutdown, reboot and single user mode respectively.