#!/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 [ -z "$NODENAME" ] && NODENAME=$(hostname) start() { # Check if the service is already running? if [ ! -f /var/lock/subsys/ejabberd ]; then export ERL_MAX_PORTS ERL_FULLSWEEP_AFTER msg_starting ejabberd daemon /usr/sbin/ejabberd RETVAL=$? if [ $RETVAL -eq 0 ]; then touch /var/lock/subsys/ejabberd fi else msg_already_running ejabberd fi } stop() { # Stop daemons. if [ -f /var/lock/subsys/ejabberd ]; then msg_stopping ejabberd /usr/sbin/ejabberdctl ejabberd@${NODENAME} stop 2>/dev/null RETVAL=$? if [ $RETVAL -eq 0 ]; then ok else fail fi rm -f /var/lock/subsys/ejabberd else msg_not_running ejabberd fi } # See how we were called. case "$1" in start) start ;; stop) stop ;; restart) stop sleep 2 start ;; reload|force-reload) if [ -f /var/lock/subsys/ejabberd ]; then msg_reloading ejabberd busy /usr/sbin/ejabberdctl ejabberd@${NODENAME} restart RETVAL=$? if [ $RETVAL -eq 0 ]; then ok else RETVAL=1 fail fi else msg_not_running ejabberd RETVAL=7 fi ;; status) EPMDOUT=`@libdir@/erlang/bin/epmd -names` echo "$EPMDOUT" | head -n 1 echo "$EPMDOUT" | grep ejabberd RETVAL=$? if [ "$RETVAL" -ne "0" ] ; then if [ -f /var/lock/subsys/ejabberd ]; then nls "%s dead but subsys locked" "ejabberd" RETVAL=2 else nls "%s is stopped" "ejabberd" RETVAL=3 fi fi ;; *) msg_usage "$0 {start|stop|status|restart|reload|force-reload}" exit 3 esac exit $RETVAL