Sophie

Sophie

distrib > Mageia > 3 > i586 > by-pkgid > 6b85a1096be63da323d7f0c1e0b4f209 > files > 1

jchkmail-2.2.1-5.mga3.i586.rpm

#!/bin/sh
#
# j-chkmail 2.2.1
#
# chkconfig: 2345 80 30
# description: j-chkmail - Joe's j-chkmail
#		filtre de messagerie

### BEGIN INIT INFO
# Provides:                     j-chkmail
# Required-Start:               $remote_fs
# Required-Stop:
# X-UnitedLinux-Should-Start:
# X-UnitedLinux-Should-Stop:
# Default-Start:                3 5
# Default-Stop:
# Description:                  Start j-chmail (milter)
### END INIT INFO

#
# VARIABLES
#
JCHKMAIL_HOME=/usr/sbin

JCHKMAIL_BIN=j-chkmail

OPTIONS=" "

WORKROOT=/var/lib/jchkmail
STATEDIR=/var/run/jchkmail
CONFDIR=/etc/mail/jchkmail


# Get config.

test -f /etc/sysconfig/jchkmail && . /etc/sysconfig/jchkmail

test -f /etc/default/jchkmail   && . /etc/default/jchkmail


PIDFILE=$STATEDIR/j-chkmail.pid
SOCKFILE=$STATEDIR/j-chkmail.sock
CFFILE=$CONFDIR/j-chkmail.cf

#
# Get unix socket file from configuration file
#
TFILE=`grep "^SOCKET" $CFFILE | awk '{print $2}'`
if [ -n "$TFILE" ];
then
  TFILE=`echo $TFILE | sed s/local://`
  TFILE=`echo $TFILE | sed s/unix://`
fi

if [ -n "$TFILE" ] ;
then
  SOCKFILE=$TFILE
fi

#
# Get PIDFILE file from configuration file
#
TFILE=`grep "^PID_FILE" $CFFILE | awk '{print $2}'`
if [ -n "$TFILE" ] ;
then
  PIDFILE=$TFILE
fi

#
#
#
USR_ID=jchkmail
GRP_ID=jchkmail

#
# Initializing process runtime state files
#
TPID=`grep "^PID_FILE" $CFFILE | awk '{print $2}'`
if [ -n "$TPID" ] ;
then
  # echo "Setting PIDFILE to $TPID"
  PIDFILE=$TPID
fi

TSOCK=`grep "^UNIX_SOCK" $CFFILE | awk '{print $2}'`
if [ -n "$TSOCK" ] ;
then
  # echo "Setting UNIX_SOCK to $TSOCK"
  SOCKFILE=$TSOCK
fi

#
# MACROS
#

check_and_kill()
{
  PID=`head -1 $1`
  kill -0 $PID > /dev/null 2>&1
  [ $? -eq 0 ] && kill $PID
}

setupdirs ()
{
  if [ -n "$WORKROOT" -a ! -d $WORKROOT ] ; then
    mkdir -p $WORKROOT
    chmod 755 $WORKROOT
    if [ -n "$USR_ID" ] ; then
      chown $USR_ID $WORKROOT
    fi
    if [ -n "$GRP_ID" ] ; then
      chgrp $GRP_ID $WORKROOT
    fi
  fi

  if [ -n "$STATEDIR" -a ! -d $STATEDIR ] ; then
    mkdir -p $STATEDIR
    chmod 755 $STATEDIR
    if [ -n "$USR_ID" ] ; then
      chown $USR_ID $STATEDIR
    fi
    if [ -n "$GRP_ID" ] ; then
      chgrp $GRP_ID $STATEDIR
    fi
  fi
}

cleanpidfile ()
{
  run=`/usr/bin/ps -edf | grep $JCHKMAIL_BIN  | grep -c -v grep`
  if [ "$run" = "0" ] ; then
    if [ -f $PIDFILE ] ; then
      echo "Removing old PID file..."
      rm -f $PIDFILE
    fi
  fi
}

cleansockfile ()
{
  run=`/usr/bin/ps -edf | grep $JCHKMAIL_BIN  | grep -c -v grep`
  if [ "$run" = "0" ] ; then
    if [ -r $SOCKFILE ] ; then
      echo "Removing old SOCK file..."
      rm -f $SOCKFILE
    fi
  fi
}

removesockfile ()
{
  if [ -r $SOCKFILE ] ; then
    echo "Removing old SOCK file..."
    rm -f $SOCKFILE
  fi
}

start ()
{
  cleanpidfile
  cleansockfile

  if [ -f $JCHKMAIL_HOME/$JCHKMAIL_BIN ] ; then
    #echo "Starting $JCHKMAIL_BIN...."
    $JCHKMAIL_HOME/$JCHKMAIL_BIN $OPTIONS  > /dev/null
    #echo ".... $JCHKMAIL_BIN started !"
  fi
}

stop () {
  echo "Stopping $JCHKMAIL_BIN...."
  i=10
  while [ $i -gt 0 -a -f $PIDFILE ]; do
    kill `head -1 $PIDFILE`
    i=`expr $i - 1`
    sleep 1
  done
  cleanpidfile
  cleansockfile
}

restart () 
{
  stop
  sleep 2
  start
}

reload ()
{
  if [ -f  "$PIDFILE" ]; then
    kill -HUP `head -1 $PIDFILE`
  fi
  removesockfile
}

dumpstats ()
{
  if [ -f  "$PIDFILE" ]; then
    kill -USR1 `head -1 $PIDFILE`
  fi
}

clearstats ()
{
  if [ -f  "$PIDFILE" ]; then
    kill -USR2 `head -1 $PIDFILE`
  fi
}

#
# Real script begins here
#
setupdirs

case "$1" in
'start')
	start
	;;

'stop')
	stop
	;;

'restart')
	restart
	;;

'reload')
  reload
  ;;

'dumpstats')
  dumpstats
  ;;

'clearstats')
  clearstats
  ;;
*)
	echo "Usage: $0 { start | stop | restart | reload | dumpstats | clearstats }"
        cat <<EOF
start      - start j-chkmail
stop       - stop j-chkmail
restart    - stop and start j-chkmail
reload     - reload j-chkmail configuration files 
             (send SIGHUP to the daemon)
dumpstats  - dump internal counters
             (send SUGUSR1 to the daemon)
clearstats - reset internal counters
             (send SIGUSR2 to the daemon)
help       - this screen

EOF
	exit 1
	;;
esac

exit 0