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