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
# 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

node=`hostname -s`

start() {
        echo -n $"Starting ejabberd: "
	if [ "$ULIMIT_MAX_FILES" ]; then
		ulimit -n $ULIMIT_MAX_FILES
	fi
        daemon --user=ejabberd --check=ejabberd \
	    "erl" "-pa @libdir@/ejabberd/ebin \
                   -sname ejabberd \
                   -s ejabberd \
                   -ejabberd config \\\"$CONFIG_FILE\\\" \
                             log_path \\\"/var/log/ejabberd/ejabberd.log\\\" \
                   -sasl sasl_error_logger \\{file,\\\"/var/log/ejabberd/sasl.log\\\"\\} \
                   -mnesia dir \\\"/var/lib/ejabberd/spool\\\" \
                   -kernel inetrc \\\"/etc/ejabberd/inetrc\\\" \
                   -detached"
        RETVAL=$?
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/ejabberd
        echo
        return $RETVAL
}

stop() {
        # Stop daemons.
        echo -n "Shutting down ejabberd: "
        /sbin/runuser -s /bin/bash - ejabberd -c "erl -pa @libdir@/ejabberd/ebin -noinput -sname ejabberdctl -s ejabberd_ctl -extra ejabberd@$node stop" && success || failure
        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)
        restart
        ;;
  force-reload)
	restart
	;;
  condrestart)
        [ -f /var/lock/subsys/ejabberd ] && restart || :
        ;;
  try-restart)
        [ -f /var/lock/subsys/ejabberd ] && restart || :
        ;;
  status)
        /sbin/runuser -s /bin/bash - ejabberd -c "erl -pa @libdir@/ejabberd/ebin -noinput -sname ejabberdctl -s ejabberd_ctl -extra ejabberd@$node status"
        ;;
  *)
        echo "Usage: ejabberd {start|stop|restart|force-reload|condrestart|try-restart|status}"
        exit 1
esac

exit $?