Penguin

AlastairPorter is trying to write some RedHat init.d scripts for the MetaNet.

#!/bin/sh
#
# Etud          startup script for the Ethernet over UDP daemon
#
#               Written by Daniel Lawson <daniel@meta.net.nz>
#               Modified for Red Hat by Alastair Porter <alastair@wlug.org.nz>
#
#
# Source function library.
. /etc/rc.d/init.d/functions

ETUDCONF=/usr/local/etc/etud.conf
DAEMON=/usr/local/sbin/Etud
#ETUDCONF=/etc/wandclients/etud.conf
#DAEMON=/usr/sbin/Etud
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=Etud
DESC="EtherneT over Udp Daemon"
IP=/bin/ip

# Check for the Etud configuration file
if [ ! -f ${ETUDCONF} ]; then
        echo Could not find etud configuration file
        exit
fi

# Parameter defaults
IFNAME=wan0
CTRLFILE=/var/run/Etud.ctrl
PIDFILE=/var/run/Etud.pid
# Retrieve the real values from the config file if they exist
while read parameter value
do
        if [ "$parameter" == "pidfile" ]; then
                PIDFILE=`echo "$value" | tr -d '"'`
        elif [ "$parameter" == "ctrlfile" ]; then
                CTRLFILE=`echo "$value" | tr -d '"'`
        elif [ "$parameter" == "ifname" ]; then
                IFNAME=`echo "$value" | tr -d '"'`
        fi
done < $ETUDCONF

test -x $DAEMON || exit 0
ARGS="-f $ETUDCONF -p $PIDFILE"

set -e

case "$1" in
start)
echo -n "Starting Etud"
        [ -e $CTRLFILE ] && {
                echo ""
                echo -n "Control file exists, checking to see if Etud lives? "

                [ -e ${PIDFILE} ] || {
                        echo ""
                        echo "No pidfile present, exiting"
                        exit 1;
                }
                # check that the pid in the pid file
                [ x`cat ${PIDFILE}` == x`pidof ${NAME}` ] && {
                        echo "... yes, aborting"
                        exit 1;
                } || {
                        echo "... no, removing"
                        \rm ${CTRLFILE}
                }

        }

        daemon $DAEMON $ARGS
        ifdown ${IFNAME}
        ifup ${IFNAME}
        echo
        ;;

stop)
        echo -n "Stopping Etud "
        ifdown ${IFNAME}
#       killproc Etud
#       that should work (I think), but it doesn't... so:
        kill `cat /var/run/Etud.pid`
        echo
        ;;

restart|force-reload)
        echo -n "Restarting $NAME"
        ifdown ${IFNAME}
#       killproc Etud
#       again...
        kill `cat /var/run/Etud.pid`
        sleep 1
        daemon $DAEMON $ARGS
        ifup ${IFNAME}
        echo
        ;;
*)
        echo "Usage: $0 {start|stop|restart|force-reload}" >&2
        ;;

esac

Or here's one by GerwinVanDeSteeg which seems to work for Fedora Core 3.

/etc/sysconfig/wand
# Configuration for the wandd daemon for the MetaNet
# http://www.wlug.org.nz/MetaNet

EPORT=22222
WPORT=44444
SERVER=<the name of the server specified in wand.conf goes here>
WANIF=wan0
/etc/init.d/wand
#! /bin/sh
#
# wand
#
# chkconfig: - 21 79
# description: wand provides access to the MetaNet
#

# Source function library.
. /etc/init.d/functions

if [ ! -f /etc/sysconfig/network ]; then
   exit 0
fi

if [ ! -f /etc/sysconfig/wand ]; then
   exit 0
fi

. /etc/sysconfig/network
. /etc/sysconfig/wand

ETUD=/usr/local/sbin/Etud
ETUDCTL=/usr/local/sbin/Etudctl
WAND=/usr/local/sbin/wand

start()
{
       echo -n $"Starting Etud: "
       daemon $ETUD -l $EPORT -p /var/run/Etud.pid
       [ "$?" -eq 0 ] && echo_success || echo_failure
       echo
       echo -n $"Bringing up interface $WANIF: "
       ifup $WANIF
       [ "$?" -eq 0 ] && echo_success || echo_failure
       echo
       echo -n $"Starting wand: "
       daemon $WAND -i $SERVER -l $WPORT
       [ "$?" -eq 0 ] && echo_success || echo_failure
       echo
       service zebra start
       service bgpd start
}

stop()
{
       service bgpd stop
       service zebra stop
       echo -n $"Shutting down wand: "
       killall wand
       [ "$?" -eq 0 ] && echo_success || echo_failure
       echo
       echo -n $"Shutting down Etud: "
       killall Etud
       [ "$?" -eq 0 ] && echo_success || echo_failure
       echo
}
case $1 in
       start)
            start
            ;;
       stop)
            stop
            ;;
       restart)
            stop
            start
            ;;
       status)
            service bgpd status
            service zebra status
            status $ETUD
           $ETUDCTL -l
            status $WANDD
            ip route | grep zebra
            ;;
       *)
            echo $"Usage: $prog {start|stop|restart|status}"
            exit 1
esac