#!/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 $?