Blob Blame History Raw
#!/bin/bash
#
# ejabberd    Starts, Stops and Reloads ejabberd.
#
# chkconfig: - 40 60
# description: ejabberd
# processname: ejabberd
# pidfile: /var/run/ejabberd.pid

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

start() {
        echo -n $"Starting ejabberd: "
        daemon --user=ejabberd --check=ejabberd \
	    "erl" "-pa @libdir@/ejabberd-@version@/ebin \
                   -sname ejabberd \
                   -s ejabberd \
                   -ejabberd config \\\"/etc/ejabberd/ejabberd.cfg\\\" \
                             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: "
        runuser -s /bin/bash - ejabberd -c "erl -pa @libdir@/ejabberd-@version@/ebin -noinput -sname ejabberdctl -s ejabberd_ctl -extra ejabberd@`hostname -s` stop" && success || failure
        RETVAL=$?
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/ejabberd
        echo
        return $RETVAL
}

restart() {
        stop
        start
}

# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart)
        restart
        ;;
  condrestart)
        [ -f /var/lock/subsys/ejabberd ] && restart || :
        ;;
  status)
        runuser -s /bin/bash - ejabberd -c "erl -pa @libdir@/ejabberd-@version@/ebin -noinput -sname ejabberdctl -s ejabberd_ctl -extra ejabberd@`hostname -s` status"
        ;;
  *)
        echo "Usage: ejabberd {start|stop|restart|reload|condrestart|status}"
        exit 1
esac

exit $?