Subject: Re: /etc/default
To: Chris G Demetriou <Chris_G_Demetriou@BALVENIE.PDL.CS.CMU.EDU>
From: Eduardo E. Horvath <>
List: current-users
Date: 07/31/1995 09:44:23
On Thu, 27 Jul 1995, Chris G Demetriou wrote:

> > > On an AT&T SysVr3/r4 box there are 6 states defined by default:
> > > 
> > > 	0: shutdown
> > > 	1: go to single user mode
> > > 	2: go to multi-user mode
> > > 	3: turn on networking
> > > 	4: un-defined
> > > 	5: go to firmware
> > > 	6: reboot
> > 
> > Here's my pet peeve with this system.  There is noeasy way to have networking
> > turned on in single user mode.
> why not?
> None of those levels' definitions are set in stone; you can completely
> change their meanings, or delete them, if you please.
> or, you can ignore them, and implement a single rc-like script, using
> only two of them (one for single-, one for multi-user).

Unless all of the scripts are independent of each other I need to figure out
how to build the necessary scripts to do this and a assign them to an unused
run level, and every time I upgrade the system I need to check through all
the changes and see what modifications I need to make to my rc?.d scripts. 
No thank you.  I think orthogonal sets of services should be started and
stopped independently.

On the other hand, if all I had to do to generate my new run level is a 
quick grep-foreach-cp loop I would be somewhat happier.  If I could have 
more than 8 and give them nice names I would be almost content.

Here's an iteresting idea I recently had:  since a Makefile target can 
be a shell script, we could make each script you dump into the rc?.d 
directory a makefile fragment consisting of a target for 
$(SERVICE).start:, $(SERVICE).stop: and a list of dependencies on other 
services.  To boot the system, cat all of the files together, select the 
current run-level and run 'make $OLDRUNLEVEL.stop' then 'make 
$NEWRUNLEVEL.start'.  Of course, there are some other details that have 
to be worked out, but is seems it might be possible.