Ubuntu – Runlevel ‘S’ on Debian/Ubuntu for

debianfirewallrunlevelUbuntu

According to Wikipedia, 'S' is supposed to be a standard runlevel: "Single-User Mode". But if I'm not mistaken, the Single-User mode on Debian is Runlevel 1. One Debian article I found claims, that 'S' is a runlevel "that the system uses on it's way to another runlevel". Interesting…

Actually, I had always pretty much ignored this runlevel so far, but today I played around with Firestarter (yes, really, an end-user firewall) just because I was curious, which firewall rules it would generate. But then I noticed, that it creates a startup hook in /etc/rcS.d, and I wondered, if my firewall script should maybe have that, too?

Update

Now I'm even more interested in knowing what it actually is on Debian/Ubuntu, because the Shorewall package (which is a strongly "Debianized" package) also creates its (only!) startup hook in rcS.d!

Best Answer

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
Related Topic