Subject: Re: Managing identical multiple daemons with a single rc.d script?
To: None <tech-pkg@netbsd.org>
From: Marc Tooley <netbsdMLpostNO@spam.quake.ca>
List: tech-pkg
Date: 01/19/2007 14:15:49
On Thursday 18 January 2007 23:58, Geert Hendrickx wrote:
> On Thu, Jan 18, 2007 at 10:53:01AM -0800, Marc Tooley wrote:
> >
> > Comments much appreciated.
>
> Very interesting. A few questions though: where are the various
> instances (the testxyz in your case) defined? In the daemon's
If you mean the various instances from the rc.d script's perspective,
they are defined purely in the rc.conf.d file. The rc.subr paper
described the rc.conf.d as a better place to put configuration files if
the configuration requirements are extensive. (In this case, they're
pretty extensive.)
If you are wondering how Perforce knows what instance it is--it doesn't.
The rc.d script itself configures the p4d instance on a per-instance
basis by telling it where to puts its db.* root files, journal file,
logfile, etc. So long as two instances don't share any filesystem
namespace (different directories) then there's no problem from
Perforce's perspective and it chugs along, blind to the fact that there
are 19 other copies of itself running on the system.
> configuration, or in rc.d (rc.conf.d) configuration? Can the various
> instances have different configuration files, or do they all use the
> same configuration file? I'd be interested in setting up multiple
The different instances are all defined in the same rc.conf.d file; I
don't see why there couldn't be additional logic installed to support
different files per-instance, but since there are only about 5-10 lines
per-instance in the rc.conf.d file the complexity by itself doesn't
necessarily warrant it except from a per-user standpoint as you are
looking at.
> apache instances this way (listening on localhost, all proxied by one
> "master" instance listening on the public interface). Would it be
> possible to give non-root users permission to start/stop/restart
> "their" instance?
Neat. Since the rc.d scripts run as root themselves, I don't imagine
they'd have any difficulties su'ing to a particular user before
performing any actual operations on the daemon instances. The rc.d
script I presented in my last note would need to be pretty extensively
modified, however. Additionally, there'd need to be a way for a user
to "register" his instance first... perhaps an additional interactive:
/etc/rc.d/p4d register new_instance_name
... which could keep track of the username the instance belongs to and
only allow global operations on the instances if the calling user has a
uid of 0.
Now that's a really cool idea..!
-Marc
Generic disclaimer, not necessarily directed at anyone in particular:
Please Reply-To: the list. My MX has trouble accepting email sometimes.