Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 25 Jun 2013 22:37:36 +0200
From:      Pietro Cerutti <gahr@FreeBSD.org>
To:        Garrett Wollman <wollman@freebsd.org>
Cc:        ports@freebsd.org, hackers@freebsd.org
Subject:   Re: rc.d scripts to control multiple instances of the same daemon?
Message-ID:  <20130625203734.GD32654@gahrfit.gahr.ch>
In-Reply-To: <20937.62239.626943.350086@hergotha.csail.mit.edu>
References:  <20937.62239.626943.350086@hergotha.csail.mit.edu>

next in thread | previous in thread | raw e-mail | index | archive | help

--d9ADC0YsG2v16Js0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

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:
>=20
> 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.
>=20
> 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?

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
#!/bin/sh

=2E /etc/rc.subr

name=3D"kadmind"
rcvar=3D${name}_enable
start_cmd=3D"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"
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

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

--=20
Pietro Cerutti
The FreeBSD Project
gahr@FreeBSD.org

PGP Public Key:
http://gahr.ch/pgp

--d9ADC0YsG2v16Js0
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.20 (FreeBSD)

iEYEARECAAYFAlHJ/44ACgkQwMJqmJVx944dUQCfXpZpkBM0hu+ycjlJJAy0tJLQ
/VsAoNPUIY1yZl9dLBc0WOmPx3uyJZUW
=djit
-----END PGP SIGNATURE-----

--d9ADC0YsG2v16Js0--



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