#!/bin/sh
#
### BEGIN INIT INFO
# Provides: dhcpy6d
# Required-Start: $syslog $network $remote_fs
# Required-Stop: $syslog $remote_fs
# Should-Start: $local_fs
# Should-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start and stop the DHCPv6 server dhcpy6d
# Description: dhcpy6d is a DHCPv6 server
### END INIT INFO
# chkconfig: - 65 35
# description: Start and stop the DHCPv6 server dhcpy6d
# processname: dhcpy6d
# config: /etc/dhcpy6d.conf
# pidfile: /var/run/dhcpy6d.pid

# this init.d file derived from /etc/init.d/dhcpd6

. /etc/rc.d/init.d/functions

RETVAL=0

prog=dhcpy6d
exec=/usr/sbin/dhcpy6d
lockfile=/var/lock/subsys/dhcpy6d
pidfile=/var/run/dhcpy6d.pid
config=/etc/dhcpy6d.conf
user=dhcpy6d
group=dhcpy6d

rh_status() {
    status -p $pidfile -l $(basename $lockfile) $exec
}

rh_status_q() {
    rh_status >/dev/null 2>&1
}

start() {
    [ `id -u` -eq 0 ] || return 4
    [ -x $exec ] || return 5
    [ -f $config ] || return 6

    rh_status_q && return 0

    echo -n $"Starting $prog: "
    $exec --config $config --user $user --group $group &
    RETVAL=$?
    pid=$!
    echo $pid > $pidfile
    [ $RETVAL -eq 0 ] && touch $lockfile

    [ $RETVAL -eq 0 ] && success $"$base startup" || failure $"$base startup"
    echo

    return $RETVAL
}

stop() {
    [ `id -u` -eq 0 ] || return 4

    rh_status_q || return 0

    echo -n $"Shutting down $prog: "
    killproc -p $pidfile $prog
    RETVAL=$?

    echo
    [ $RETVAL -eq 0 ] && rm -f $lockfile
    return $RETVAL
}

usage() {
    echo $"Usage: $0 {start|stop|restart|force-reload|status}"
}

if [ $# -gt 1 ]; then
    exit 2
fi

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart|force-reload)
        stop ; start
        ;;
    status)
        rh_status
        ;;
    *)
        usage
        exit 2
        ;;
esac

exit $?
