#!/bin/sh
#Iliya Sharov (isharov@yandex-team.ru), 2007
#Boris Savelev (boris@altlinux.org), 2009
#
# xscript
#
# chkconfig:    - 95 10
# description:  Web-server
# processname:  xscriptctl
# config:       /etc/xscript/xscript.conf
# pidfile:      /var/lib/xscript/pid

WITHOUT_RC_COMPAT=1

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

NAME="xscript"
XSCRIPT_USER="_xscript"
XSCRIPT_PID="/var/run/$NAME/xscriptstart.pid"
PID_DIR="/var/run/$NAME"
LOG_DIR="/var/log/$NAME"

RETVAL=0

case "$1" in
  start)
	echo "Starting xscript:"
	if /sbin/start-stop-daemon --quiet --stop --signal 0 --pidfile $PID_DIR/xscript.pid 2>/dev/null 1>/dev/null
	then
	    echo "$THIS is already running."
	    exit 1
	fi
	/sbin/start-stop-daemon --start --background --verbose --name $NAME \
		--chuid $USER --exec /usr/sbin/xscriptstart.sh $NAME
	echo
	sleep 1
	if ! ls $XSCRIPT_PID 2> /dev/null; then
	    echo "Xscript not started. See logs in /var/log/$NAME"
	fi;
        ;;
    stop)
        echo "Stopping xscript: "
	if ! [ -s $PID_DIR/xscript.pid ]
	then
	    echo Warning:$PID_DIR/xscript.pid not found
	    start_pid=`ps ax |egrep '/usr/sbin/xscriptstart.sh '$NAME'$' |grep -v grep |awk '{ print  $1 }'`
	    if [ "$start_pid" != "" ]; then
		kill -9 $start_pid
	    fi
	    exit
	continue
	fi
	
	#Kill fastcgistart
	/sbin/start-stop-daemon --quiet --stop --signal 0 --pidfile $PID_DIR/xscriptstart.pid 2>&1 >/dev/null
	/sbin/start-stop-daemon --quiet --signal 15 --stop --pidfile $PID_DIR/xscriptstart.pid 2>&1 >/dev/null
	/sbin/start-stop-daemon --quiet --signal 9 --stop --pidfile $PID_DIR/xscriptstart.pid 2>&1 >/dev/null
	#Kill daemon
	/sbin/start-stop-daemon --quiet --stop --signal 0 --pidfile $PID_DIR/xscript.pid 2>&1 >/dev/null
	/sbin/start-stop-daemon --quiet --signal 15 --stop --pidfile $PID_DIR/xscript.pid 2>&1 >/dev/null
	/sbin/start-stop-daemon --quiet --signal 2 --stop --pidfile $PID_DIR/xscript.pid 2>&1 >/dev/null

	for C in `seq 10 -1 1`; do
	    ps `cat $PID_DIR/xscript.pid` >>/dev/null 2>&1 || break
	    sleep 1
	    ps `cat $PID_DIR/xscript.pid` >>/dev/null 2>&1 || break
	    echo -n "$C "
	    /sbin/start-stop-daemon --quiet --signal 9 --stop --pidfile $PID_DIR/xscript.pid 2>&1 >/dev/null
	    if [ $C -eq 1 ]; then
		echo " Cannot stop xscript"
		rm $PID_DIR/xscript.pid  >/dev/null
		exit
	    fi
	done
	
	#Rm pid files
	rm $PID_DIR/xscript.pid  >/dev/null
        ;;
    restart)
	$0 stop $@
	$0 start $@
	RETVAL=$?
	;;

    *)
        echo "Usage: $NAME {start|stop|restart}" >&2
        exit 1
        ;;
esac

exit 0
