Date: Sun, 8 Aug 2004 09:26:48 -0700 (PDT) From: Jon Passki <cykyc@yahoo.com> To: freebsd-rc@freebsd.org Subject: Re: Feature request to rc.d: managing subsets of scripts Message-ID: <20040808162649.80859.qmail@web50302.mail.yahoo.com> In-Reply-To: <20040807214302.73783.qmail@web50307.mail.yahoo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Gratuitous self-reply :-/
--- Jon Passki <cykyc@yahoo.com> wrote:
> Hello All,
>
> I wish accomplish the following with rc.d scripts:
>
> 1) Scripts can be assigned to a subset;
> 2) Subsets can be ordered, with this order honored by rcorder;
> 3) Subsets can be independently started and stopped after the
> initial system startup;
>
> For me, the usage would be in situations where I have a bunch of
> interdependent scripts that would need a stop/start when for
> example I'm remounting a file system or reassigning daemons to a
> different network interface. This way, I could assign scripts to
> subsets if I know that they utilize common interfaces or mounts.
> It is implied that if a script wasn't placed in a subset it
> should
> continue to function even though it may depend on or be a
> dependent
> of a subset that was stopped. It is the responsibility of the
> sysadmin to properly segment subsets.
>
> 1) & 2) can be accomplished with the REQUIRE, PROVIDE and BEFORE
> lines. This would also make me alter each rc.d script I wish to
> manage, but that is acceptable. It's unknown to me if subsets
> should be disjointed.
>
> It isn't obvious to me, though, if 3) could work that way. I
> still
> would see rcorder doing it's magic, but it would need a filter to
> only order that subset. The KEYWORD line could be used in
> addition
> to the other lines, but adds some redundancy. According to [1],
> rcorder logically OR's keep list switches. It would have to AND
> them in this case to handle a) the FreeBSD switch and b) more
> importantly, manage more than one subset.
snippit for 3)
subsets="zone1 internal external"
for _i in ${subsets}
do
if [ -z "${_regexp}" ]; then
_regexp="'^# KEYWORDS?:.*${_i}"
else
_regexp="${_regexp}|^# KEYWORDS?:.*${_i}"
fi
done
_files=`eval "grep -El ${_regexp}' ${some_path}"`
rcorder ${skip} ${_files} 2>/dev/null
Thanks to Oliver Eikemeier for the KEYWORD string :-)
Jon Passki
p.s. This satisfies things for me. YMMV
__________________________________
Do you Yahoo!?
New and Improved Yahoo! Mail - 100MB free storage!
http://promotions.yahoo.com/new_mail
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040808162649.80859.qmail>
