#!/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