#!/sbin/runscript # Copyright 1999-2011 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ depend() { need net use mysql postgresql slapd provide jabber-server } SERVICES_CONF="/etc/jabber/jabberd.cfg" start() { if [ ! -r "${SERVICES_CONF}" ]; then eerror "You didn't configure services in ${SERVICES_CONF} file or file is not readable" return 1 fi einfo "Starting Jabber Services ..." local pid_name pid_path services services="$(grep -v "^ *#" "${SERVICES_CONF}" | grep '..*' | awk '{print $1 ":" $2}')" eindent for service in ${services}; do cfgfile=$(echo ${service} | cut -d ':' -f 2) service=$(echo ${service} | cut -d ':' -f 1) ebegin "Starting ${service} (${cfgfile})" if [ ! -f "${cfgfile}" ]; then eerror "Can't find: ${cfgfile}" stop return 1 fi executable=/usr/bin/${service} if [ ! -f "${executable}" ]; then eerror "Can't find executable: ${executable}" stop return 1 fi pid_path="$(xmllint --nonet --xpath /${service}/pidfile ${cfgfile} 2>/dev/null )" if [ "$?" -ne "0" ] ; then eerror "Can't find pidfile in ${cfgfile}, did you set it?" stop return 1 fi pid_name="$(echo ${pid_path} | sed -e 's@<[^>]*>@@g' -e 's@/.*/@@' )" start-stop-daemon \ --background \ --start \ --user jabber:jabber \ --exec ${executable} \ --pidfile /var/run/jabber/${pid_name} \ -- -c ${cfgfile} eend $? done eoutdent } stop() { # caƂosc do przerobki einfo "Stopping Jabber Services ..." eindent local pid_name pid_path services services="$(grep -v "^ *#" "${SERVICES_CONF}" | grep '..*' | awk '{print $1 ":" $2}' | tac)" for service in ${services}; do cfgfile=$(echo ${service} | cut -d ':' -f 2) service=$(echo ${service} | cut -d ':' -f 1) ebegin "Stopping ${service} (${cfgfile})" if [ ! -f "${cfgfile}" ]; then eerror "Can't find: ${cfgfile}" return 1 fi pid_path="$(xmllint --nonet --xpath /${service}/pidfile ${cfgfile} 2>/dev/null )" if [ "$?" -ne "0" ] ; then eerror "Can't find pidfile in ${cfgfile}, did you set it?" return 1 fi pid_name="$(echo ${pid_path} | sed -e 's@<[^>]*>@@g' -e 's@/.*/@@' )" start-stop-daemon \ --stop \ --user jabber \ --name "${service}" \ --pidfile /var/run/jabber/${pid_name} eend $? done eoutdent }