#!/sbin/runscript groupware="/etc/open-xchange/init.d/groupware" webmail="/etc/open-xchange/init.d/webmail" sessiond="/etc/open-xchange/init.d/sessiond" depend() { need net slapd apache2 tomcat5 use postgresql mysql cyrus courier-imapd courier-imapd-ssl postfix after postgresql mysql } checkconfig() { if [[ ! -x ${groupware} ]] ; then eerror "${groupware} doesn't exist or nor executable" return 1 fi if [[ ! -x ${webmail} ]] ; then eerror "${webmail} doesn't exist or nor executable" return 1 fi if [[ ! -x ${sessiond} ]] ; then eerror "${sessiond} doesn't exist or nor executable" return 1 fi } checktomcat() { einfo "Checking Tomcat status..." sleep 5 STATE=0 STATE=`netstat -tan | grep LISTEN | grep 8009 | awk '{print $4}' | sed -e "s:0.0.0.0\:::g"` if [ ! "${STATE}" ]; then STATE="0"; fi while [ "${STATE}" -ne "8009" ]; do ewarn "Tomcat has crashed, trying to recover" /etc/init.d/tomcat5 stop >/dev/null 2>&1 ebegin "Stopping Tomcat and waiting 5 seconds..." sleep 5 eend $? ebegin "Restarting Tomcat, we hope" /etc/init.d/tomcat5 restart >/dev/null 2>&1 sleep 5 eend $? einfo "Checking Tomcat status" STATE=`netstat -tan | grep LISTEN | grep 8009 | awk '{print $4}' | sed -e "s:0.0.0.0\:::g"` done einfo "Tomcat status: Running." } start() { checkconfig || return 1 checktomcat local retval ebegin "Starting Open-Xchange sessiond" start-stop-daemon --start --exec ${sessiond} -- start &> /dev/null retval=$? eend $retval [[ ${retval} -eq 0 ]] || return 1 ebegin "Starting Open-Xchange groupware" start-stop-daemon --start --exec ${groupware} -- start &> /dev/null retval=$? eend $retval [[ ${retval} -eq 0 ]] || return 1 ebegin "Starting Open-Xchange webmail" start-stop-daemon --start --exec ${webmail} -- start &> /dev/null retval=$? eend $retval [[ ${retval} -eq 0 ]] || return 1 } stop() { local retval ebegin "Stopping Open-Xchange sessiond" start-stop-daemon --start --exec ${sessiond} -- stop &> /dev/null retval=$? eend $retval [[ ${retval} -eq 0 ]] || return 1 ebegin "Stopping Open-Xchange groupware" start-stop-daemon --start --exec ${groupware} -- stop &> /dev/null retval=$? eend $retval [[ ${retval} -eq 0 ]] || return 1 ebegin "Stopping Open-Xchange webmail" start-stop-daemon --start --exec ${webmail} -- stop &> /dev/null retval=$? eend $retval [[ ${retval} -eq 0 ]] || return 1 } opts="${opts} extendstatus" extendstatus() { status="$sessiond status" $status status="$groupware status" $status stop="$webmail status" $status }