#! /bin/sh
# Copyright (c) 2002 ALT Linux Team, Russia.
#
# Author: Igor Muratov <migor@altlinux.ru>
#
# /sbin/init.d/oracle-lsnr
#
# chkconfig: 345 81 19
# description:  The start/stop script for Oracle listener
#

. /etc/init.d/functions

SourceIfNotEmpty /etc/sysconfig/oracle

# Setup environment
LOCKFILE=/var/lock/subsys/oracle-lsnr
USER=oracle
ORATAB=/etc/oratab
RETVAL=0

# Stop when all bases is disabled
[ -s $ORATAB ] \
	&& /bin/grep -v "^#" /etc/oratab | /bin/cut -d: -f3 \
	| grep "Y" >/dev/null || exit 1

[ -x "$ORACLE_HOME/bin/lsnrctl" ] || exit 1

start()
{
	action "Starting Oracle Net8 listener:" \
		su - $USER -s /bin/sh \
		-c "ORACLE_HOME=$ORACLE_HOME\ $ORACLE_HOME/bin/lsnrctl\ start" \
		|| return
	RETVAL=$?
	[ $RETVAL -eq 0 ] && touch "$LOCKFILE"
	return $RETVAL
}
stop()
{
	action "Shutting down Oracle Net8 listener:" \
		su - $USER -s /bin/sh \
		-c "ORACLE_HOME=$ORACLE_HOME\ $ORACLE_HOME/bin/lsnrctl\ stop" \
		|| return
	RETVAL=$?
	[ $RETVAL -eq 0 ] && rm -f "$LOCKFILE"
	return $RETVAL
}
status()
{
	su - $USER -s /bin/sh \
		-c "ORACLE_HOME=$ORACLE_HOME $ORACLE_HOME/bin/lsnrctl status" \
		|| return
	RETVAL=$?
	return $RETVAL
}
restart()
{
	stop
	start
}
reload()
{
	echo -n "Reload Oracle Net8 listener"
	action "Reload Oracle Net8 listener:" \
		su - $USER -s /bin/sh \
		-c "ORACLE_HOME=$ORACLE_HOME\ $ORACLE_HOME/bin/lsnrctl\ reload" \
		|| return
	RETVAL=$?
	return $RETVAL
}

case "$1" in
    start)
		start
        ;;
    stop)
		stop
        ;;
    restart)
		restart
        ;;
    reload)
		reload
        ;;
	condstop)
		if [ -e "$LOCKFILE" ]; then
			stop
		fi
		;;
	condrestart)
		if [ -e "$LOCKFILE" ]; then
			restart
		fi
		;;
    status)
		status
        ;;
    *)
        echo "Usage: $0 {start|stop|restart|reload|condstop|condrestart|status}"
        RETVAL=1
        ;;
esac

exit $RETVAL
