Re: Moving /etc/rc.conf.local to /usr/local/etc/rc.conf

From: Juan Manuel Palacios <jmpalacios_at_gmail.com>
Date: Sat, 27 Jan 2024 20:56:08 UTC
Hi John,

Sorry for the long delay in following up on this thread.

I’ve read through the man page and /etc/defaults/rc.conf, and I still can’t figure out how to make rc(8) work with a /usr/local/etc/rc.conf file fully out-of-the-box. I did manage to configure each individual service that I want to start and customize through individual /usr/local/etc/rc.conf.d/$name configuration files, which is great, it does accomplish the goal I had of moving as many jail configurations as possible to /usr/local/etc; but, provided I’m reading things right, and /usr/local/etc/rc.conf is indeed not supported out-of-the-box, I wonder what the rationale for that would be, i.e. why support out-of-the-box /etc/rc.conf & /etc/rc.conf.local, rather than /etc/rc.conf & /usr/local/etc/rc.conf, which seems to be the FreeBSD standard used for almost everything else (e.g. /etc/pkg.conf & /usr/local/etc/pkg.conf for the pkg tool).

I know you can customize the rc_conf_files variable to hold a value with my files of choice, but that in itself implies customizing /etc/rc.conf to override rc_conf_files’ default value, which defeats the purpose of keeping all customizations to /usr/local/etc.

Thank you,

> On Jan 6, 2024, at 11:10 PM, John R. Levine <johnl@iecc.com> wrote:
> 
>> Thank you for pointing out that entry in the rc.conf(5) man page! I guess I either didn’t pay too much attention to it at first, and/or I was thrown off either by the meaning of “(dir)” in that paragraph, which I can only assume maps to /usr/local/etc (but I still haven’t tested to confirm that), or by the fact that you can only use “(name)” configuration files inside rc.conf.d within “(dir)”, rather than just a plain rc.conf file within “(dir)”.
>> 
>> So, if I’m I’m understanding correctly, that’d mean that I can have configuration files (*NOT* script files, which would go inside “(dir)”/rc.d) such as:
>> 
>> /usr/local/etc/rc.conf.d/apache24
>> /usr/local/etc/rc.conf.d/php-fpm
> 
> Sure.
> 
>> but not a single one named:
>> 
>> /usr/local/etc/rc.conf
> 
> Um, if you'd read to the end of that paragraph, you'd have found rc_conf_files which lists individual files to include.
> 
> These are just files of shell commands that are included by the startup scripts.  Take a look at /etc/defaults/rc.conf (described in the third paragraph of that same man page) and see what it does.
> 
> Regards,
> John Levine, johnl@taugh.com, Primary Perpetrator of "The Internet for Dummies",
> Please consider the environment before reading this e-mail. https://jl.ly