Subject: Re: rc, rc.shutdown proposed change
To: der Mouse <mouse@Rodents.Montreal.QC.CA>
From: Nathan J. Williams <nathanw@MIT.EDU>
List: tech-userlevel
Date: 03/12/2000 18:29:03
<mouse@Rodents.Montreal.QC.CA> (der Mouse) writes:

> > That sounds like a good idea at first glance, but imagine a situation
> > where you want to stop/start/restart a subsystem.  Now you'll have to
> > first remember if it's a system-delivered system, or a package, or a
> > "local" one, [...]
> 
> > That's not a good thing.
> 
> Neither is having your localisms destroyed by a system "upgrade" that
> happens to provide something with the same name as what you picked.
>
> > Though it may seem less elegant at first, putting them all into
> > /etc/rc.d is the best idea.
> 
> Which way is "best" depends on whether you consider the inconvenience
> of having to remember the list of script directories and searching
> through them worse than the inconvenience of having localisms destroyed
> by an upgrade due to name clashes.

The solution to both of these problems is to define the namespace of
/etc/rc.d, and reserve parts of the namespace for packages and for
local code. 

The people who suggested /etc/rc.local.d and /etc/rc.pkg.d are trying
to solve this namespace problem by creating two new namespaces. I
would prefer to solve it by separating out the namespace within
/etc/rc.d.

Declaring '.' or '-' as a separator, and then having
"/etc/rc.d/foo.pkg" or "/etc/rc.d/bar.local" seems reasonable.

Another method (used in other contexts) would be to declare that
system packages will always have an uppercase letter in them, and that
all others must not. I don't think people would want to type those,
though.

        - Nathan