davmail/src/contribs/rpm/SOURCES/davmail-init

135 lines
2.3 KiB
Bash

#!/bin/sh
#
# davmail: davmail exchange gateway daemon
#
# chkconfig: 35 98 02
# description: DavMail gateway for Microsoft Exchange
# processname: davmail
# config: /etc/davmail.properties
# LSB init-info
### BEGIN INIT INFO
# Provides: davmail
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 2 3 5
# Default-Stop: 0 1 6
# Short-Description: DavMail gateway for Microsoft Exchange
### END INIT INFO
# Source function library.
if [ -e /etc/init.d/functions ]; then
. /etc/init.d/functions
fi
# LSB functions
. /lib/lsb/init-functions
# Check that networking is configured.
[ "${NETWORKING}" = "no" ] && exit 0
DAVMAIL_CONF=/etc/davmail.properties
test -f $DAVMAIL_CONF || exit 4
DAVMAIL_HOME=/var/lib/davmail
test -d $DAVMAIL_HOME || exit 5
LOGFILE=/var/log/davmail.log
PIDFILE=/var/run/davmail.pid
LOCKFILE=/var/run/davmail.lock
start() {
echo -n $"Starting DavMail gateway: "
dostatus > /dev/null 2>&1
if [ $RETVAL -eq 0 ]
then
echo -n $"DavMail gateway already running"
log_failure_msg
RETVAL=1
return
fi
su - davmail -s /bin/sh -c "exec nohup $DAVMAIL_HOME/davmail $DAVMAIL_CONF >> $LOGFILE 2>&1 &"
RETVAL=$?
if [ $RETVAL -eq 0 ]
then
sleep 1
cat $DAVMAIL_HOME/pid > $PIDFILE
touch $LOCKFILE
log_success_msg
else
log_failure_msg
fi
return $RETVAL
}
stop() {
echo -n $"Shutting down DavMail gateway: "
kill $(cat $PIDFILE 2>/dev/null) > /dev/null 2>&1
RETVAL=$?
sleep 1
if [ $RETVAL -eq 0 ]
then
rm -f $PIDFILE $LOCKFILE
log_success_msg
else
log_failure_msg
fi
return $RETVAL
}
restart() {
stop
start
}
condrestart() {
[ -f $LOCKFILE ] && restart || :
}
dostatus() {
kill -0 $(cat $PIDFILE 2>/dev/null) > /dev/null 2>&1
RETVAL=$?
if [ $RETVAL -eq 0 ]
then
echo "DavMail gateway (pid $(cat $PIDFILE 2>/dev/null)) is running..."
else
if [ -f $PIDFILE ]
then
echo "DavMail gateway dead but pid file exists"
RETVAL=1
return
fi
if [ -f $LOCKFILE ]
then
echo "DavMail gateway dead but subsys locked"
RETVAL=2
return
fi
echo "DavMail gateway is stopped"
RETVAL=3
fi
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
dostatus
;;
restart|reload)
restart
;;
condrestart)
condrestart
;;
*)
echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}"
exit 1
esac
exit $RETVAL