Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Sep 2005 20:48:03 +0400
From:      Yar Tikhiy <yar@comp.chem.msu.su>
To:        arch@freebsd.org
Subject:   Minor issues in our rcNG
Message-ID:  <20050928164803.GA11556@comp.chem.msu.su>

next in thread | raw e-mail | index | archive | help
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=




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050928164803.GA11556>