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

PATH=/usr/bin:/bin:/usr/sbin:/sbin

DAEMON=crond
PIDFILE=/var/run/${DAEMON}.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 [ ! -d /etc/cron.d ]; then
      mkdir -p /etc/cron.d
    fi

    if [ ! -d /var/spool/cron ]; then
      mkdir -p /var/spool/cron
    fi

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

    printf "Starting $DAEMON: "         ; $DAEMON

    rc=$?
    if [ $rc -ne 0 ]; then
            echo "[FAIL]"
	    echo "$0: Error ${rc} starting ${DAEMON}... bailing."
	    exit $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
