Blob Blame History Raw
#!/bin/bash
#
# ejabberd    Start and stop ejabberd.

# chkconfig: - 40 60
# description: ejabberd
# processname: ejabberd
# pidfile: /var/run/ejabberd.pid

### BEGIN INIT INFO
# Provides: ejabberd
# Required-Start: network
# Required-Stop: network
# Default-Start:
# Default-Stop: 0 1 6
# Short-Description: Start and stop ejabberd
# Description: A distributed, fault-tolerant Jabber/XMPP server
### END INIT INFO

. /etc/rc.d/init.d/functions

if [ -r /etc/sysconfig/ejabberd ]; then
	. /etc/sysconfig/ejabberd
fi

if [ ! "$CONFIG_FILE" ]; then
	CONFIG_FILE=/etc/ejabberd/ejabberd.cfg
fi

start() {
        echo -n $"Starting ejabberd: "
	if [ "$ULIMIT_MAX_FILES" ]; then
		ulimit -n $ULIMIT_MAX_FILES
	fi
	daemon /usr/sbin/ejabberdctl start
				--config $CONFIG_FILE \
				--ctl-config /etc/ejabberd/ejabberdctl.cfg \
				--logs "/var/log/ejabberd" \
				--spool "/var/lib/ejabberd/spool" \
				2>/dev/null
        RETVAL=$?
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/ejabberd
        echo
        return $RETVAL
}

stop() {
        # Stop daemons.
        echo -n "Shutting down ejabberd: "
	daemon /usr/sbin/ejabberdctl stop 2>/dev/null
        RETVAL=$?
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/ejabberd
        echo
        return $RETVAL
}

restart() {
        stop
	sleep 5
        start
}

# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart|force-reload)
        restart
        ;;
  condrestart|try-restart)
        [ -f /var/lock/subsys/ejabberd ] && restart || :
        ;;
  status)
	/usr/sbin/ejabberdctl status
        ;;
  *)
        echo "Usage: ejabberd {start|stop|restart|force-reload|condrestart|try-restart|status}"
        exit 2
esac

exit $?