#!/bin/bash

### BEGIN INIT INFO
# Provides:          gearman_worker
# Required-Start:    nginx gearman-job-server
# Required-Stop:     nginx gearman-job-server
# Default-Start:     2 5
# Default-Stop:      0 1 6
# Short-Description: Start/stop gearman_worker
# Description:       Start/stop gearman_worker daemon for openITCOCKPIT
# 
### END INIT INFO

set -e
set -u
i=0
DAEMON="/usr/share/openitcockpit/app/Console/cake"
DAEMON_OPTS="gearman_worker"
PIDFILE=/var/run/oitc_gearmanworker.pid
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

if [ $# -lt 1 ]
then
	echo "$0 <start|stop|restart|status>"
	exit 1
fi

case $1 in
	start)
		counter=0
		while ! /usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf ping >/dev/null; do
 			counter=$((counter+1))
 			if [ $counter -gt 30 ]; then
   				echo "Could not start gearman_worker: mysql not running"
   				exit 1
 			fi
 			sleep 1
		done
		
		echo "Starting openITCOCKPIT gearman_worker"
		start-stop-daemon --start --pidfile $PIDFILE --make-pidfile --background --exec $DAEMON --chuid root:www-data -- $DAEMON_OPTS
	;;

	stop)
		echo "Stopping openITCOCKPIT gearman_worker"
		start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
		while start-stop-daemon --pidfile $PIDFILE --status; do
			sleep .1
			if [ $i -ge 100 ]; then
				echo "openITCOCKPIT gearman_worker stop failed"
				exit 1
			else
				i=$(( i + 1 ))
				echo -n "."
			fi
		done
	;;
	
	restart|reload|force-reload)
		echo "Restarting openITCOCKPIT gearman_worker"
		$0 stop
		$0 start
	;;
	
	status)
		if start-stop-daemon --pidfile=$PIDFILE --status
		then
			PID=`cat $PIDFILE`
			echo "openITCOCKPIT gearman_worker is running (pid $PID)."
			exit 0
		else
			echo "openITCOCKPIT gearman_worker is not running"
			exit 3
		fi
		;;
	
	probe)
		echo restart
		exit 0
	;;
	
	*)
		echo "Unknown command $1."
		exit 1
	;;
esac
