Sophie

Sophie

distrib > Mandriva > 10.0 > i586 > by-pkgid > 29284430c3b8d1fcc7e667ccf5265667 > files > 22

kolab-server-1.0-0.23.100mdk.i586.rpm

#!/bin/bash
##
##  rc.kolab
##
##  Copyright (c) 2002 Martin Konold <martin.konold(at)erfrakon.de>
##  Copyright (c) 2002 Tassilo Erlewein <tassilo.erlewein(at)erfrakon.de>
##  Adapted for Mandrake by Jean-Michel Dault <jmdault@mandrakesoft.com>
# chkconfig: 345 95 05
# description:  This starts the Kolab groupware server

. /etc/init.d/functions

check_config() {
  if [ ! -f /etc/kolab/key.pem ];then
    gprintf "\n"
    gprintf "Kolab has not been configured yet!\n"
    gprintf "Please run /usr/sbin/kolab_boostrap -b then\n"
    gprintf "type 'service kolab-server start' to start the service.\n"
    gprintf "\n"
    exit
  fi
}

launch() {
  if [ -f /var/run/$1.pid -o -f /var/lock/subsys/$1 ];then
    /etc/init.d/$1 stop
  fi
  /etc/init.d/$1 start
}

terminate() {
  if [ -f /var/run/$1.pid -o -f /var/lock/subsys/$1 ];then
    /etc/init.d/$1 stop
  fi
}

start() {

    mkdir -p /var/spool/postfix/extern/cyrus
    chown cyrus:postfix /var/spool/postfix/extern/cyrus
    chmod 750 /var/spool/postfix/extern/cyrus
    perl -pi -e "s|^(SASL_AUTHMECH=)pam$|\$1\"ldap\"|;" \
        /etc/sysconfig/saslauthd

    launch ldap
    launch saslauthd
    launch cyrus-imapd
    launch httpd
    launch postfix

    gprintf "starting kolab backend (please wait)\n"
    sleep 5
    if [ -f /var/run/kolab.pid ]; then
       touch /var/lock/subsys/kolab-server
       PID=`cat /var/run/kolab.pid | awk '{print $1}'`
       KOLABS=`ps -p $PID 2>/dev/null | grep -c kolab | awk '{print $1}'`
       if [ $KOLABS -gt 0 ]; then
          gprintf "Warning: kolab is already running under pid %s!\n" "$PID"
       else
          /usr/sbin/kolab &
       fi
    else 
       /usr/sbin/kolab &
    fi
}


stop() {

    gprintf "stopping kolab backend ...\n"
    if [ -f /var/run/kolab.pid ]; then
       kill `cat /var/run/kolab.pid` 2>/dev/null
    fi
    sleep 1
    killall -9 kolab 2>/dev/null
    rm -f /var/lock/subsys/kolab-server

    terminate postfix
    terminate httpd
    terminate cyrus-imapd
    terminate saslauthd
    terminate ldap
    terminate proftpd

}

reload() {
    /etc/init.d/ldap restart

    gprintf "restart saslauthd (saslauth cannot reload) ...\n"
    if [ -f /var/run/saslauthd.pid ]; then
       kill -TERM `cat /var/run/saslauthd.pid` 2>/dev/null
    fi
    sleep 1
    killall -9 saslauthd 2>/dev/null
    /usr/sbin/saslauthd -a ldap -n 5    

    #saslauth cannot reload
    launch saslauthd

    /etc/init.d/cyrus-imapd reload
    /etc/init.d/postfix reload
    /etc/init.d/httpd reload

    gprintf "reload proftpd (if running) ...\n"
    if [ -f /var/run/proftpd.pid ]; then
      kill -HUP `cat /var/run/proftpd.pid` 2>/dev/null
    fi 

    gprintf "reload kolab ...\n"
    if [ -f /var/run/kolab.pid ]; then
      kill -HUP `cat /var/run/kolab.pid` 2>/dev/null
    fi 
}

status() {
    if [ -f /var/run/kolab.pid ]; then
      gprintf "Kolab is running...\n"
    else
      gprintf "Kolab is *not *running...\n"
    fi
}

case $1 in
    start   ) check_config
              start ;;
    stop    ) stop  ;;
    restart ) stop
              sleep 1
              check_config
              start ;;
    reload )  check_config
              reload ;;
    status )  status 
	      check_config;;
esac