#!/bin/sh # # ejabberd Fault-tolerant distributed Jabber/XMPP server # # chkconfig: 345 99 01 # # description: Fault-tolerant distributed Jabber/XMPP server # # Source function library . /etc/rc.d/init.d/functions # Get service config - may override defaults [ -f /etc/sysconfig/ejabberd ] && . /etc/sysconfig/ejabberd EJABBERD_DOC_PATH="@EJABBERD_DOC_PATH@" EJABBERD_PID_PATH=/var/run/jabber/ejabberd.pid export EJABBERD_DOC_PATH EJABBERD_PID_PATH start() { # Check if the service is already running? if [ ! -f /var/lock/subsys/ejabberd ]; then msg_starting ejabberd daemon --user jabber /usr/sbin/ejabberdctl start RETVAL=$? if [ $RETVAL -eq 0 ]; then msg_starting "ejabberd start confirmation" daemon --user jabber /usr/sbin/ejabberdctl started RETVAL=$? fi [ $RETVAL -eq 0 ] && touch /var/lock/subsys/ejabberd else msg_already_running ejabberd fi } stop() { # Stop daemons. if [ -f /var/lock/subsys/ejabberd ]; then msg_stopping ejabberd ; busy out=$(/bin/su - jabber -s /bin/sh -c "/usr/sbin/ejabberdctl stop" 2>&1) RETVAL=$? if [ $RETVAL -eq 0 ]; then out2=$(/bin/su - jabber -s /bin/sh -c "/usr/sbin/ejabberdctl stopped" 2>&1) RETVAL=$? fi if [ $RETVAL -eq 0 ]; then ok else fail [ -n "$out" ] && echo $out [ -n "$out2" ] && echo $out2 fi rm -f /var/lock/subsys/ejabberd else msg_not_running ejabberd fi } reload() { # Reload configuration if [ ! -f /var/lock/subsys/ejabberd ]; then msg_not_running ejabberd RETVAL=7 return fi msg_reloading ejabberd daemon --user jabber /usr/sbin/ejabberdctl reload_config RETVAL=$? } # See how we were called. case "$1" in start) start ;; stop) stop ;; restart) stop start ;; reload|force-reload) reload ;; status) status --pidfile $EJABBERD_PID_PATH ejabberd RETVAL=$? ;; *) msg_usage "$0 {start|stop|status|restart|reload|force-reload}" exit 3 esac exit $RETVAL