#!/bin/bash # # Based on script from Raymond 25DEC2003 support@bigriverinfotech.com # Changed by Adrian Reber <adrian@lisas.de> # # processname: jabberd # description: jabberd is the next generation of the jabberd server # chkconfig: - 85 15 # # source function library . /etc/rc.d/init.d/functions # pull in sysconfig settings [ -f __SYSCONF__/jabberd ] && . __SYSCONF__/jabberd if [ -z "$START_DAEMONS" ]; then START_DAEMONS="router resolver sm c2s s2s" fi # progs="$START_DAEMONS" progsPath="__BINDIR__" confPath="__ETCDIR__" pidPath="__PIDDIR__" retval=0 # ReqBins ( ) { for prog in ${progs}; do if [ ! -x ${progsPath}/${prog} ]; then echo "jabberd binary [${prog}] not found." echo "Cannot continue." return -1 fi done return 0 } # ReqConfs ( ) { for prog in ${progs}; do if [ ! -f ${confPath}/${prog}.xml ]; then echo "jabberd configuration [${prog}.xml] not found." echo "Cannot continue." return -1 fi done return 0 } # ReqDirs ( ) { if [ ! -d ${pidPath} ]; then echo "jabberd PID directory not found. Cannot continue." return -1 fi return 0 } # Start ( ) { for req in ReqBins ReqConfs ReqDirs; do ${req} retval=$? [ ${retval} == 0 ] || return ${retval} done echo "Initializing jabberd processes ..." for prog in ${progs}; do if [ $( pidof -s ${prog} ) ]; then echo "process [${prog}] already running" continue fi echo -n "Starting ${prog}: " rm -f /var/lock/subsys/${prog} rm -f ${pidPath}/${prog}.pid args="-c ${confPath}/${prog}.xml" if [ ${prog} == "c2s" -a ! -z "$C2S_AS_ROOT" ]; then if [ $C2S_AS_ROOT == "yes" ]; then daemon --user root "${progsPath}/${prog} ${args} >/dev/null 2>&1 &" else daemon --user jabber "${progsPath}/${prog} ${args} >/dev/null 2>&1 &" fi else daemon --user jabber "${progsPath}/${prog} ${args} >/dev/null 2>&1 &" fi retval=$? echo if [ ${retval} == 0 ]; then touch /var/lock/subsys/${prog} else let retval=-1 break fi done return ${retval} } # Stop ( ) { echo "Terminating jabberd processes ..." for prog in $(echo ${progs} | tac -s ' '); do echo -n "Stopping ${prog}: " killproc ${prog} retval=$? if [ ${retval} == 0 ]; then rm -f /var/lock/subsys/${prog} rm -f ${pidPath}/${prog}.pid fi echo sleep 1 done return ${retval} } # reload() { echo "Reloading jabberd processes ..." for prog in ${progs}; do killproc ${prog} -HUP retval=$? done return ${retval} } rhstatus() { for prog in ${progs}; do status ${prog} retval=$? done return ${retval} } case "$1" in start) Start ;; stop) Stop ;; reload) reload ;; status) rhstatus ;; restart) Stop Start ;; condrestart) for prog in ${progs}; do if [ ! -f /var/lock/subsys/${prog} ]; then exit fi done Stop sleep 3 Start ;; *) echo "Usage: $0 {start|stop|restart|condrestart|reload|status}" let retval=2 esac exit ${retval}