Subject: run levels (was Re: The new rc.d stuff...)
To: Andrew Brown <>
From: Perry E. Metzger <>
List: current-users
Date: 04/24/2000 00:54:22
Andrew Brown <> writes:
>  (1) add a kernel variable (and a sysctl) call kern.runlevel which is
>      a string that can only be updated by init.
> oh, and this is *completely* ignorable by anyone who doesn't wish to
> use it.

It isn't ignorable by people with taste.

Run levels are useless. A machine in production typically runs at one
run level all the time -- it doesn't shuttle from one run level to
another on an hourly basis. "single user mode" just means "boot and
then hand out a shell instead of executing rc scripts" -- it isn't
really a "level", and it is used only for maintenance. A machine is
off, or it is being maintained, or it is running for real. Period.

I've never seen run levels used for any good purpose in any System V
installation, and I've worked on some pretty huge installations. Never
having seen a function for a facility leads me to belive that facility
is not useful. Run levels have always been a solution looking for a
problem, and they add complexity without giving any benefit in
return. They were a bad idea, and I see no reason to further a bad

rc.d does not fall into this category.  The reason I like rc.d is that
it improves maintainability in large sites by making it trivial for
packages (and even built in programs) to install rc hooks simply by
adding a file. I've run sites with literally thousands of computers,
and without an rc.d-like solution it just isn't pleasant. Every time
I've dealt with a system without something like rc.d, I've been forced
to re-create it on my own. This leads me to believe that the facility
is worthwhile.

Given rcorder, we've substantially improved on the original
idea. Instead of the cryptic S105screwme files, we just have a script
per daemon, with a simple and clean solution to the "what the heck do
I do first?" problem.

So, rc.d makes some sense. However, run levels and all they implied
were a bad idea. They have no function.

I see no reason to dogmatically reject System V originated ideas if
they are good, but when they suck, they should be ignored. Run levels
suck. They should be ignored.

Perry Metzger
"Ask not what your country can force other people to do for you..."