/usr/local/etc/rc.conf & rcorder

Nagilum freebsd at nagilum.org
Sun May 30 14:44:26 PDT 2004

Danny Braniss wrote:

>>On Sat, 29 May 2004, Patrick Tracanelli wrote:
>>>I remember it has been discussed before, but the terms were a little bit
>>>different, so tell me, isn't it appropriate rc.subr to suck the
>>>configuration parameters from /usr/local/etc/rc.conf instead  of
>>>/etc/rc.conf when running startupscripts for third party applications
>>>To keep the organization principles, I dislike putting those
>>>instructions into /etc/rc.conf when it should be read by 3rd party apps,
>>>since I consider /etc/ to be used by the base system. Altho' old style
>>>.sh scripts are still usefull under ${local_startup} dirs, ports
>>>maintainers tend to write new style rc scripts that uses rc.subr to read
>>>the user defined options (usually via /etc/rc.conf).
>>>Easy solution would be
>>>rc_conf_files="/etc/rc.conf /etc/rc.conf.local /usr/local/etc/rc.conf"
>>>into /etc/rc.conf, but it seems to be ignored by rc.subr when it's not
>>>at /etc/defaults/rc.conf;
>>>Some 3rd party startupscripts read rc.subr from /usr/local/etc/, so if
>>>it suck only ${PREFIX}/etc/rc.conf options, would force users to
>>>configure it in the right place, but it would break POLA and since some
>>>scripts read /etc/rc.subr instead if ${PREFIX}/etc/rc.subr, would also
>>>break some ports (very very bad idea).
>>>So, to allow ports startupscript to be configured from
>>>/usr/local/etc/rc.conf but also prevent people who are today used to mix
>>>everything in /etc/rc.conf from having their app. not starting, defining
>>>rc_conf_files="/etc/rc.conf /etc/rc.conf.local /usr/local/etc/rc.conf"
>>>into /etc/defaults/rc.conf would just do it, nothing would break and
>>>port's pkg-message could start trying to educate users to populate
>>>/usr/local/etc/rc.conf for ports startup options and leaving
>>>/etc/rc.conf only for the base system...
>>Having multiple locations for system startup parameters (A là Windows) is
>>a maintenance headache even when there's a logical method to the
>>madness. I'm saying this as the admin of 6 racks packed with 1U and 2U
>>machines. Be gentle... ;)
>and some of us (i hope more than one), have /usr/local shared among many.

I strongly support Patricks original proposal, as for the replies, this 
would not interfere with your usual way of doing things, you could still 
keep your ports startup options in /etc/rc.conf it would make no 
difference.  But give (optionally) a better separation of base and 
ports. The settings may or may not be exported throught /usr/local/ to 
other hosts, the decision would be up to the admin as changes to rc.conf 
are (nearly) always made manually.
However while we're at it I also would like to propose the use of 
rcorder for /usr/local/etc/rc.d/. There are certain ports that use 
number prefixes to try to ensure proper startup order (e.g. mysql-client 
or pkgtools, see the discussion prio the introduction of rcorder for why 
this is suboptimal) however as we already have a working solution for 
this problem it is only matter of using it, the required change would be 

bash-2.05b# diff -Naur bash-2.05b# diff -Naur \
/usr/src/etc/rc.d/localdaemons /etc/rc.d/localdaemons 
--- /usr/src/etc/rc.d/localdaemons      Mon May  5 17:38:41 2003
+++ localdaemons	Sat Nov  1 17:11:57 2003
@@ -29,7 +29,7 @@
		for dir in ${local_startup}; do
			if [ -d "${dir}" ]; then
-				for script in ${dir}/*.sh; do
+				for script in `rcorder ${dir}/*.sh 2>/dev/null`; do


(Replace localdaemons with localpkg for newer system.)
There are certain ports (such as bacula) that would definatly profit 
from this (e.g. all ports that require mysql/pgsql to be running, while 
beeing started)
 Kind regards,

More information about the freebsd-ports mailing list