#!/bin/sh
# chkconfig: 2345 25 75
### BEGIN INIT INFO
# Provides:          atd
# Required-Start:    $local_fs
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start atd at boot time
# Description:       Enable service provided by atd.
# X-Start-Before:    
# X-Stop-After:      
# X-Timesys-Start-Number:  25
# X-Timesys-Stop-Number:  75
### END INIT INFO


SPOOL=/var/spool/at
DAEMON=/usr/sbin/atd
PIDFILE=/var/run/atd.pid

stop_service() {
    if [  -r $PIDFILE  -a  ! -z ${PIDFILE}  ]; then
	    PID=`cat ${PIDFILE}`
    fi
    if [  ${PID:=0} -gt 1 -a  ! "X$PID" = "X "  ]; then
	    kill ${PID}
    else
	    echo "Unable to read PID file"
    fi
}

start_service() {

    if [ -z "$(grep ^daemon /etc/passwd 2>/dev/null)" ]; then
        echo "$0: Creating system user 'daemon' with generic settings.  Review and modify as required."
        yes '' | adduser daemon >/dev/null 2>&1 || yes '' | useradd daemon >/dev/null 2>&1
    fi
    if [ -z "$(grep ^daemon /etc/group 2>/dev/null)" ]; then
        echo "$0: Creating system group 'daemon' with generic settings.  Review and modify as required."
        yes '' | addgroup daemon >/dev/null 2>&1 || yes '' | groupadd daemon >/dev/null 2>&1
    fi
    if [ ! -d $SPOOL ]; then
      mkdir -p $SPOOL
      chown daemon:daemon $SPOOL
    fi

    if [ -f $PIDFILE ]; then
        PIDDIR=/proc/$(cat $PIDFILE)
        if [ -d ${PIDDIR} -a -n "$(readlink -f ${PIDDIR}/exe 2>/dev/null)" ]; then
        	echo "atd already started; not starting."
        	return
        else
        	echo "Removing stale PID file $PIDFILE."
        	rm -f $PIDFILE
        fi
    fi

    # Start ATD
    printf "Starting $DAEMON: "         ; $DAEMON &

    atd_rc=$?
    if [ $atd_rc -ne 0 ]; then
            echo "[FAIL]"
	    echo "$0: Error ${atd_rc} starting ${DAEMON}... bailing."
	    exit $atd_rc
    fi
    echo "[ OK ]"
}

case $1 in

'start')
    start_service
    ;;

'stop')
    stop_service
    ;;

'restart')
    stop_service
    start_service
    ;;

*)
    echo "Usage: $0 [start|stop|restart]"
    ;;
esac
