Minor issues in our rcNG

Yar Tikhiy yar at comp.chem.msu.su
Wed Sep 28 09:48:07 PDT 2005


Hi there,

The larger issue I'd like to discuss is as follows.  Presently,
${<name>_program} variables are special in that they always override
${command}.  Some rc.d scripts (ab)use this to skip setting ${command},
e.g., sshd.  Some other scripts (ab)use ${<name>_program} despite
they are not just starting ${command} once, e.g., pf, and so make
rc.subr think they have functionality that isn't realy there, such as
poll.  Perhaps it's time to separate these two cases in a way?

I can see two possible approaches.  One is to require scripts just
starting a daemon always set ${command}, and to apply the attached
patch to rc.subr.  With the patch, ${command} is overridden only
if it was set in the first place.  The other approach is to prevent
non-daemon scripts from abusing ${<name>_program}.  However, in the
latter case defining ${<name>_program}, e.g., by mistake, still can
affect the script while it should not.

The second issue is rather small.  The rc command "reload" is
supported by code in /etc/rc.subr, but it doesn't appear on the
default list of commands unlike "status" or "poll" when there is
${pidfile} or ${command} set, and so it is unusable by default.
Scripts have to use ``extra_commands=reload''.  In addition, all
this is undocumented.  Should "reload" be added to the list of
available commands along with "status" and "poll"?

Finally, we have a script named rcconf.sh which doesn't seem
to do anything useful now since all the other scripts invoke
load_rc_config by their own.  Can we drop it then?

-- 
Yar

--- rc.subr~  2005/08/24 16:37:28
+++ rc.subr   2005/09/20 00:03:41
@@ -493,9 +493,7 @@
        esac

        eval _overide_command=\$${name}_program
-       if [ -n "$_overide_command" ]; then
-               command=$_overide_command
-       fi
+       command=${command:+${_overide_command:-$command}}

        _keywords="start stop restart rcvar $extra_commands"
        rc_pid=



More information about the freebsd-arch mailing list