rc.d scripts to control multiple instances of the same daemon?

Pietro Cerutti gahr at FreeBSD.org
Tue Jun 25 20:37:48 UTC 2013


On 2013-Jun-25, 15:44, Garrett Wollman wrote:
> I'm in the process of (re)writing an rc.d script for kadmind
> (security/krb5).  Unlike the main Kerberos daemon, kadmind needs to
> have a separate instance for each realm on the server -- it can't
> support multiple realms in a single process.  What I need to be able
> to do:
> 
> 1) Have different flags and pidfiles for each instance.
> 2) Be able to start, stop, restart, and status each individual
> instance by giving its name on the command line.
> 3) Have all instances start/stop automatically when a specific
> instance isn't specified.
> 
> I've looked around for examples of good practice to emulate, and
> haven't found much.  The closest to what I want looks to be
> vboxheadless, but I'm uncomfortable with the amount of mechanism from
> rc.subr that it needs to reimplement.  Are there any better examples?

Wouldn't something like this be enough?

====================================================================
#!/bin/sh

. /etc/rc.subr

name="kadmind"
rcvar=${name}_enable
start_cmd="kadmind_start $2"

load_rc_config $name

kadmind_start()
{
    if [ -z $1 ]; then
        echo "starting all instances"
    else
        echo "starting instance $1"
    fi
}

run_rc_command "$1"
====================================================================

# /usr/local/etc/rc.d/kadmind start
starting all instances
# /usr/local/etc/rc.d/kadmind start myinst
starting instance myinst

-- 
Pietro Cerutti
The FreeBSD Project
gahr at FreeBSD.org

PGP Public Key:
http://gahr.ch/pgp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-hackers/attachments/20130625/b25c3485/attachment.sig>


More information about the freebsd-hackers mailing list