Home | History | Annotate | Line # | Download | only in scripts
      1 #!/bin/sh
      2 # control starting, stopping, or restarting hlfsd.
      3 # usage: ctl-hlfsd [start | stop | restart]
      4 #
      5 # Package:	am-utils-6.x
      6 # Author:	Erez Zadok <ezk (at] cs.columbia.edu>
      7 #
      8 # chkconfig: - 72 28
      9 # description: hlfsd is a daemon similar to amd, used to redirect user
     10 #              mail to home directory of the user
     11 # processname: hlfsd
     12 #
     13 
     14 # set path
     15 prefix=@prefix@
     16 exec_prefix=@exec_prefix@
     17 PATH=@sbindir@:@bindir@:/usr/ucb:/usr/bin:/bin:${PATH}
     18 export PATH
     19 
     20 # kill the named process(es)
     21 killproc()
     22 {
     23 # try bsd style ps
     24 pscmd="ps axc"
     25 pid=`${pscmd} 2>/dev/null | grep "$1" | sed -e 's/^  *//' -e 's/ .*//'`
     26 if test "$pid" != ""
     27 then
     28 	kill $pid
     29 	return 0
     30 fi
     31 
     32 # try bsd44 style ps
     33 pscmd="ps -x"
     34 pid=`${pscmd} 2>/dev/null | grep "$1" | sed -e 's/^  *//' -e 's/ .*//'`
     35 if test "$pid" != ""
     36 then
     37 	kill $pid
     38 	return 0
     39 fi
     40 
     41 # try svr4 style ps
     42 pscmd="ps -e"
     43 pid=`${pscmd} 2>/dev/null | grep "$1" | sed -e 's/^  *//' -e 's/ .*//'`
     44 if test "$pid" != ""
     45 then
     46 	kill $pid
     47 	return 0
     48 fi
     49 
     50 # failed
     51 return 1
     52 }
     53 
     54 # before running any real programs, chdir to / to avoid possible hangs on (NFS)
     55 # mounts.
     56 cd /
     57 
     58 # locate logs directory
     59 if [ -d /var/log ]; then
     60 	logdir="/var/log"
     61 else
     62 	logdir="/tmp"
     63 fi
     64 
     65 # locate the mail spool directory
     66 if [ -d /var/mail/. ]; then
     67 	maildir="/var/mail"
     68 	altmaildir="/var/alt_mail"
     69 elif [ -d /var/spool/mail/. ]; then
     70 	maildir="/var/spool/mail"
     71 	altmaildir="/var/spool/alt_mail"
     72 else
     73 	maildir="/usr/spool/mail"
     74 	altmaildir="/usr/spool/alt_mail"
     75 fi
     76 
     77 # locate any optional password file
     78 if [ -f @sysconfdir@/passwd ]; then
     79 	PASSWD_FILE="-P @sysconfdir@/passwd"
     80 else
     81 	PASSWD_FILE=""
     82 fi
     83 
     84 case "$1" in
     85 'start')
     86 	#
     87 	# Start the hlfsd mail redirector service
     88 	#
     89 	if [ -x @sbindir@/hlfsd -a -h $maildir ]
     90 	then
     91 		echo @sbindir@/hlfsd ${PASSWD_FILE} -a $altmaildir -x all -l $logdir/hlfsd /mail/home .mailspool
     92 		@sbindir@/hlfsd ${PASSWD_FILE} -a $altmaildir -x all -l $logdir/hlfsd /mail/home .mailspool &
     93 		test -x /var/lock/subsys && touch /var/lock/subsys/hlfsd
     94 	fi
     95 	;;
     96 
     97 'stop')
     98 	# prepend space to program name to ensure only amd process dies
     99 	killproc " hlfsd"
    100 	test -f /var/lock/subsys/hlfsd && rm -f /var/lock/subsys/hlfsd
    101 	;;
    102 
    103 'restart')
    104 	# kill hlfsd, wait for it to die, then restart
    105 	echo "killing hlfsd..."
    106 	ctl-hlfsd stop
    107 	echo "Waiting for 10 seconds..."
    108 	sleep 10	# hope that would be enough
    109 	echo "Restarting hlfsd..."
    110 	ctl-hlfsd start
    111 	;;
    112 
    113 *)
    114 	echo "Usage: @sbindir@/ctl-hlfsd [ start | stop | restart ]"
    115 	;;
    116 esac
    117