#!/bin/sh
# przyklady funkcji startujacej i zatrzymujacej mksd
# (nalezy uruchamiac na prawach roota)


# sciezka do pliku mksd lub tylko nazwa, jesli plik znajduje sie w $PATH
# plik mks32 powinien sie znajdowac w tym samym katalogu co mksd lub w $PATH
MKSD_PATH=mksd

# uzytkownik
MKSD_USER=vscan

# podstawowa grupa
MKSD_GROUP=amavis

# dodatkowe grupy (opcjonalnie)
MKSD_ADDGROUPS=",vscan,mail"

# liczba procesow mksd
MKSD_NPROC=4


startmksd ()
{
  if [ ! -d /var/run/mksd ]
  then
    mkdir -p /var/run/mksd
    chmod 710 /var/run/mksd
    chown ${MKSD_USER}:${MKSD_GROUP} /var/run/mksd
  elif [ -f /var/run/mksd/mksd.pid ]
  then
    if  ps -c -p `cat /var/run/mksd/mksd.pid` | grep -q mksd
    then
      return 1
    fi
    rm -f /var/run/mksd/mksd.pid
  fi
  
  if  ${MKSD_PATH} -u ${MKSD_USER} -g ${MKSD_GROUP}${MKSD_ADDGROUPS} ${MKSD_NPROC}
  then
    return 0
  else
    return 2
  fi
}

stopmksd ()
{
  if [ ! -f /var/run/mksd/mksd.pid ]
  then
    return 1
  fi
  
  MKSDPID=`cat /var/run/mksd/mksd.pid`
  if  ps -c -p ${MKSDPID} | grep -q mksd
  then
    kill -TERM ${MKSDPID}
    return 0
  else
    return 1
  fi
}


startmksd
case $? in
0)
  echo mksd uruchomiony poprawnie
  ;;
1)
  echo mksd juz dziala w systemie
  ;;
2)
  echo blad uruchamiania mksd
  ;;
esac

stopmksd
case $? in
0)
  echo wyslalem SIGTERM do mksd
  ;;
1)
  echo mksd nie dziala w systemie
  ;;
esac
