Rev 43 | Blame | Compare with Previous | Last modification | View Log | RSS feed
#!/bin/bash## zarafa-server Zarafa Collaboration Platform's Storage Server## chkconfig: 345 85 25# description: The Zarafa Server takes MAPI calls in SOAP over HTTP(S) or \# the unix socket. It authenticates users using one of three \# authentication backends (unix/pam, db, ldap). It stores the data \# in a MySQL instance, and optionally stores the attachments directly \# on the filesystem.# processname: /usr/sbin/zarafa-server# config: /etc/zarafa/server.cfg# pidfile: /var/run/zarafad/server.pid### BEGIN INIT INFO# Provides: zarafa-server# Required-Start: $local_fs $network $remote_fs $syslog# Required-Stop: $local_fs $network $remote_fs $syslog# Should-Start: mysqld# Should-Stop: mysqld# Short-Description: Zarafa Collaboration Platform's Storage Server# Description: The Zarafa Server takes MAPI calls in SOAP over HTTP(S) or# the unix socket. It authenticates users using one of three# authentication backends (unix/pam, db, ldap). It stores the data# in a MySQL instance, and optionally stores the attachments directly# on the filesystem.### END INIT INFOSERVERCONFIG=/etc/zarafa/server.cfgSERVERPROGRAM=/usr/sbin/zarafa-server# Sanity checks.[ -x $SERVERPROGRAM ] || exit 0SERVERCONFIG_OPT=""[ ! -z $SERVERCONFIG -a -f $SERVERCONFIG ] && SERVERCONFIG_OPT="-c $SERVERCONFIG"[ -f /etc/sysconfig/zarafa ] && . /etc/sysconfig/zarafaexport ZARAFA_USERSCRIPT_LOCALE# Source function library.. /etc/rc.d/init.d/functionsif [ -z "$ZARAFA_LOCALE" ]; thenZARAFA_LOCALE="C"fiRETVAL=0server=`basename $SERVERPROGRAM`lockfile=/var/lock/subsys/$serverpidfile=/var/run/zarafad/server.pidstart() {# Start in background, always succeedsecho -n $"Starting $server: "install -dm0775 -o zarafa -g zarafa /var/run/zarafadexport LC_ALL=$ZARAFA_LOCALEexport LANG=$ZARAFA_LOCALEdaemon $SERVERPROGRAM $SERVERCONFIG_OPTRETVAL=$?unset LC_ALL LANGecho[ $RETVAL -eq 0 ] && touch $lockfilereturn $RETVAL}stop() {if [ -f /tmp/zarafa-upgrade-lock ]; thenechoecho "Zarafa Server database upgrade is taking place."echo "Do not stop this process bacause it may render your database unusable."echoexit 1fi# Cannot use killproc, because it has no timeout feature;# zarafa-server may take up to 60 seconds to shutdown.ZARAFAPID=`cat /var/run/zarafad/server.pid 2>/dev/null`if [ -z "$ZARAFAPID" -o ! -n "$ZARAFAPID" ]; thenecho -n "Program ID of $server not found, trying to stop anyway: "killall $SERVERPROGRAM >/dev/null 2>&1RETVAL=$?echoif [ $RETVAL -eq 0 ]; thenfailure $"Stopping $server: "elsesuccess $"Stopping $server: "fiRETVAL=0elseecho -n $"Stopping $server: "TIMEOUT=65/bin/kill $ZARAFAPID >/dev/null 2>&1if [ $? -eq 0 ]; thenwhile [ $TIMEOUT -gt 0 ]; do/bin/kill -0 $ZARAFAPID >/dev/null 2>&1 || breaksleep 1TIMEOUT=$[${TIMEOUT}-1]doneif [ $TIMEOUT -eq 0 ]; thenfailure $"Timeout on stopping $server"RETVAL=1elsesuccess $"Stopping $server: "RETVAL=0fielsefailure $"Stopping $server: "fiechofi[ $RETVAL -eq 0 ] && rm -f $lockfile $pidfilereturn $RETVAL}restart() {stopstart}reload() {echo -n $"Restarting $server: "killproc $SERVERPROGRAM -SIGHUPRETVAL=$?echoreturn $RETVAL}# See how we were called.case "$1" instart)start;;stop)stop;;status)status $serverRETVAL=$?;;restart|force-reload)restart;;condrestart|try-restart)if [ -f ${pidfile} ]; thenstopstartfi;;reload)reload;;*)echo $"Usage: $server {start|stop|status|reload|restart|condrestart|force-reload|try-restart}"RETVAL=1;;esacexit $RETVAL