#!/bin/bash
#
# Startup script for UnrealIRCd.
#
# chkconfig: - 80 20
# description: UnrealIRCd is an advanced IRC server.
# processname: unrealircd
# pidfile: /etc/unrealircd/ircd.pid
# config: /etc/unrealircd

. /etc/init.d/functions

RUNAS="irc"
IRCD="/usr/sbin/unrealircd"
IRCD_PID="/etc/unrealircd/ircd.pid"
prog="unrealircd"

start(){
	echo -n "Starting $prog: "
	if test -f "${IRCD_PID}" && checkpid "`cat "${IRCD_PID}"`"; then
		echo -n "already running"
		failure
	else
		su -l "${RUNAS}" -s /bin/sh -c "${IRCD}" > /tmp/unrealircd.init.output 2>&1
		sleep 2
		if test -f "${IRCD_PID}" && checkpid "`cat "${IRCD_PID}"`"; then
			rm -f /tmp/unrealircd.init.output
			touch /var/lock/subsys/$prog
			success
		else
			failure
		fi
	fi
	echo
}
stop(){
	echo -n "Stopping $prog: "
	if test -f "${IRCD_PID}" && checkpid `cat "${IRCD_PID}"`; then
		kill -TERM `cat "${IRCD_PID}"`
		sleep 2
		if test -f "${IRCD_PID}" && checkpid `cat "${IRCD_PID}"`; then
			failure
		else
			rm -f /var/lock/subsys/$prog
			success
		fi
	else
		echo -n "not running"
		failure
	fi
	echo
}

case "$1" in
start)
	start
	;;
stop)
	stop
	;;
restart)
	stop
	start
	;;
rehash)
	kill -HUP `cat "${IRCD_PID}"`
	;;
*)
	echo "Usage: $0 {start|stop|restart|rehash}"
	;;
esac
exit 0

