#!/bin/sh # # j-chkmail 2.2.1 # # chkconfig: 2345 80 30 # description: j-greyd - Joe's j-greyd # filtre de messagerie ### BEGIN INIT INFO # Provides: j-greyd # Required-Start: $remote_fs # Required-Stop: # X-UnitedLinux-Should-Start: # X-UnitedLinux-Should-Stop: # Default-Start: 3 5 # Default-Stop: # Description: Start j-chmail (filtre mail) ### END INIT INFO # # VARIABLES # JGREYD_HOME=/usr/sbin JGREYD_BIN=j-greyd OPTIONS=" " WORKROOT=/var/lib/jchkmail STATEDIR=/var/run/jchkmail CONFDIR=/etc/mail/jchkmail # Get config. test -f /etc/sysconfig/jgreyd && . /etc/sysconfig/jgreyd test -f /etc/default/jgreyd && . /etc/default/jgreyd GREYD_PIDFILE=$STATEDIR/j-greyd.pid SOCKFILE=$STATEDIR/j-greyd.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 "^GREYD_PID_FILE" $CFFILE | awk '{print $2}'` #if [ -n "$TFILE" ] ; #then # GREYD_PIDFILE=$TFILE #fi # # # USR_ID=jchkmail GRP_ID=jchkmail # # Initializing process runtime state files # #TPID=`grep "^GREYD_PID_FILE" $CFFILE | awk '{print $2}'` #if [ -n "$TPID" ] ; #then # # echo "Setting GREYD_PIDFILE to $TPID" # GREYD_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=`/bin/ps -edf | grep $JGREYD_BIN | grep -c -v grep` if [ "$run" = "0" ] ; then if [ -f $GREYD_PIDFILE ] ; then echo "Removing old PID file..." rm -f $GREYD_PIDFILE fi fi } cleansockfile () { run=`/bin/ps -edf | grep $JGREYD_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 $JGREYD_HOME/$JGREYD_BIN ] ; then echo "Starting $JGREYD_BIN...." $JGREYD_HOME/$JGREYD_BIN $OPTIONS echo ".... $JGREYD_BIN started !" fi } stop () { echo "Stopping $JGREYD_BIN...." i=10 while [ $i -gt 0 -a -f $GREYD_PIDFILE ]; do kill `head -1 $GREYD_PIDFILE` i=`expr $i - 1` sleep 1 done cleanpidfile cleansockfile echo " OK !" } restart () { stop sleep 2 start } # # Real script begins here # setupdirs case "$1" in 'start') start ;; 'stop') stop ;; 'restart') restart ;; *) echo "Usage: $0 { start | stop | restart | help }" cat <<EOF start - start j-greyd stop - stop j-greyd restart - stop and start j-greyd (send SIGUSR2 to the daemon) help - this screen EOF exit 1 ;; esac exit 0