Hardly.. Why would you possibly lose changes by upgrading your OS? I've
never seen an OS, especially FreeBSD, touch /usr/local/etc/rc.d from an
upgrade. I'd imagine one that is backward enough to replace config files
without asking would also overwrite rc.local. The *biggest* reason for
having separate files is that if you accidentally forget a " or a ' in
rc.local, chances are the rest of the script would not complete, and
critical services (such as, say, sshd) would not load.
Just picture working on your system remotely, rebooting, and not being able
to get back in because of a silly little typo in rc.local. Having separate
scripts in /usr/local/etc/rc.d completely rids you of that problem (only
that particular script would fail). Far more reliable, far simpler (many
startup scripts are rather large, and can clutter up rc.local), and more
powerful -- most startup scripts aren't simply run, they're actually passed
a 'start' parameter, and can be passed 'stop' ones as well. When installing
a package, the install script can also easily create a single file in rc.d,
whereas it would have to append something to rc.local, which isn't all that
simple to do if it doesn't belong right at the end of the script. This way,
newer versions of software can simply overwrite the script in rc.d if you
chose to, instead of searching through rc.local to find relative blocks of
code and replacing them (which would almost certainly screw up).
rc.local is now deprecated on FreeBSD in favour of rc.d.
----- Original Message -----
From: Ed Carp <erc@stripped>
Cc: <paul@stripped>; <mysql@stripped>; <dav3@stripped>
Sent: Thursday, April 08, 1999 3:31 AM
Subject: Re: silient and very short auto-start
>On most systems, it is preferred to ut stuff in rc.local rather than in
>rc.d. You'll find out why when it comes time to pgrade your OS and you
>lose all your changes.