Re: BSD vs SysV init scripts

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Rod Heyd
Date:  
To: plug-discuss
Subject: Re: BSD vs SysV init scripts
On Sun, 23 Jan 2005 15:54:04 -0700, Siri Amrit Kaur
<> wrote:
> Thank you, Jay. Let me try to understand this:
>
> According to my /etc/inittab, I boot into runlevel 3,
> console/multiuser. Then I type "startx" to go into KDE or whatever.
> Once I'm in X am I still in runlevel 3? I thought I'd be in runlevel
> 4 or 5, but when I opened a shell in KDE, the "runlevel" command said
> I was still in runlevel 3.
>
> Do I have to delete or comment-out the symlinks in both runlevel 3 and
> 4-5? What if I decide to work for awhile in runlevel 1? Will the
> services start up there? I don't want to have to delete a ton of
> symlinks in all the runlevels.
>


You are still in run-level 3. When you switch to the "graphical
login" run-levels, that just means that init starts
XDM/GDM/KDM/whateverDM on one of your virtual terminals, and allows
you to login through that mechanism. Running startx does not issue
any init or telinit commands so it does nothing to change your
run-level. To switch runlevels, use the command:

telinit n (where n is the number of the run-level you want to switch to).

As for the whole init.d and rc*.d heirarchy:

Think of it this way: all of the scripts that start (or stop) all of
your services are located in the init.d directory. Now each run level
can be set up to start (or stop) any service you like. This is set up
by the symlinks in the rc*.d folders. So, for example, when you
switch to
runlevel 5, all the symlinks in rc5.d get run. The symlinks starting
with a K specify services that will be stopped, Symlinks starting with
an S specify services that will be started, and the numbers after the
K or S, specify the order in which the service will be
started/killed.

So for any given runlevel it's pretty easy to see which services will
be started or stopped just by looking at the symlinks. There
shouldn't be any need to add or delete a bunch of symlinks unless you
want to change what services are run by default in a particular
runlevel.

As for needing to work in run-level 1, that shouldn't really be an
arbitrary decision. If you need to work in single user mode then you
shouldn't *want* to have all those services running, and if you need
to start one of them up, its easy enough to just change directories to
/etc/init.d/ and run the startup script, usually something like:
./servicename start should be all you need to do get start a specific
service running (at any runlevel).

> I've actually spent hours and hours studying this, and tried various
> little programs to edit the symlinks, and it just seems like a
> convoluted mess compared to the BSD-style init scripts in Slackware.
> Just my opinion.
>


I have to say that I think this is really funny. I know a lot of BSD
people that just can't seem to grok SysV init (and I admit that I had
similar troubles when I went from adminning slack boxes to Solaris and
redhat boxes). It is a different sort of beast, but I also think it's
a lot more logical once you understand how it works. Once I figured
it out, I realized instantly that SysV was a *lot* better, and a lot
easier to maintain and update.

-Rod
---------------------------------------------------
PLUG-discuss mailing list -
To subscribe, unsubscribe, or to change you mail settings:
http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss