138494Sobrien#!/bin/sh 238494Sobrien# control starting, stopping, or restarting hlfsd. 338494Sobrien# usage: ctl-hlfsd [start | stop | restart] 438494Sobrien# 5174294Sobrien# Package: am-utils-6.x 638494Sobrien# Author: Erez Zadok <ezk@cs.columbia.edu> 742629Sobrien# 851292Sobrien# chkconfig: - 72 28 942629Sobrien# description: hlfsd is a daemon similar to amd, used to redirect user 1042629Sobrien# mail to home directory of the user 1151292Sobrien# processname: hlfsd 1251292Sobrien# 1338494Sobrien 1438494Sobrien# set path 1538494Sobrienprefix=@prefix@ 1638494Sobrienexec_prefix=@exec_prefix@ 1738494SobrienPATH=@sbindir@:@bindir@:/usr/ucb:/usr/bin:/bin:${PATH} 1838494Sobrienexport PATH 1938494Sobrien 2038494Sobrien# kill the named process(es) 2138494Sobrienkillproc() 2238494Sobrien{ 2338494Sobrien# try bsd style ps 2438494Sobrienpscmd="ps axc" 2538494Sobrienpid=`${pscmd} 2>/dev/null | grep "$1" | sed -e 's/^ *//' -e 's/ .*//'` 2638494Sobrienif test "$pid" != "" 2738494Sobrienthen 2838494Sobrien kill $pid 2938494Sobrien return 0 3038494Sobrienfi 3138494Sobrien 3238494Sobrien# try bsd44 style ps 3338494Sobrienpscmd="ps -x" 3438494Sobrienpid=`${pscmd} 2>/dev/null | grep "$1" | sed -e 's/^ *//' -e 's/ .*//'` 3538494Sobrienif test "$pid" != "" 3638494Sobrienthen 3738494Sobrien kill $pid 3838494Sobrien return 0 3938494Sobrienfi 4038494Sobrien 4138494Sobrien# try svr4 style ps 4238494Sobrienpscmd="ps -e" 4338494Sobrienpid=`${pscmd} 2>/dev/null | grep "$1" | sed -e 's/^ *//' -e 's/ .*//'` 4438494Sobrienif test "$pid" != "" 4538494Sobrienthen 4638494Sobrien kill $pid 4738494Sobrien return 0 4838494Sobrienfi 4938494Sobrien 5038494Sobrien# failed 5138494Sobrienreturn 1 5238494Sobrien} 5338494Sobrien 54174294Sobrien# before running any real programs, chdir to / to avoid possible hangs on (NFS) 55174294Sobrien# mounts. 56174294Sobriencd / 57174294Sobrien 5838494Sobrien# locate logs directory 5938494Sobrienif [ -d /var/log ]; then 6038494Sobrien logdir="/var/log" 6138494Sobrienelse 6238494Sobrien logdir="/tmp" 6338494Sobrienfi 6438494Sobrien 6538494Sobrien# locate the mail spool directory 6638494Sobrienif [ -d /var/mail/. ]; then 6738494Sobrien maildir="/var/mail" 6838494Sobrien altmaildir="/var/alt_mail" 6982794Sobrienelif [ -d /var/spool/mail/. ]; then 7082794Sobrien maildir="/var/spool/mail" 7182794Sobrien altmaildir="/var/spool/alt_mail" 7238494Sobrienelse 7338494Sobrien maildir="/usr/spool/mail" 7438494Sobrien altmaildir="/usr/spool/alt_mail" 7538494Sobrienfi 7638494Sobrien 7738494Sobrien# locate any optional password file 78174294Sobrienif [ -f @sysconfdir@/passwd ]; then 79174294Sobrien PASSWD_FILE="-P @sysconfdir@/passwd" 8038494Sobrienelse 8138494Sobrien PASSWD_FILE="" 8238494Sobrienfi 8338494Sobrien 8438494Sobriencase "$1" in 8538494Sobrien'start') 8638494Sobrien # 8738494Sobrien # Start the hlfsd mail redirector service 8838494Sobrien # 8938494Sobrien if [ -x @sbindir@/hlfsd -a -h $maildir ] 9038494Sobrien then 91174294Sobrien echo @sbindir@/hlfsd ${PASSWD_FILE} -a $altmaildir -x all -l $logdir/hlfsd /mail/home .mailspool 92174294Sobrien @sbindir@/hlfsd ${PASSWD_FILE} -a $altmaildir -x all -l $logdir/hlfsd /mail/home .mailspool & 93119679Smbr test -x /var/lock/subsys && touch /var/lock/subsys/hlfsd 9438494Sobrien fi 9538494Sobrien ;; 9638494Sobrien 9738494Sobrien'stop') 9838494Sobrien # prepend space to program name to ensure only amd process dies 9938494Sobrien killproc " hlfsd" 100119679Smbr test -f /var/lock/subsys/hlfsd && rm -f /var/lock/subsys/hlfsd 10138494Sobrien ;; 10238494Sobrien 10338494Sobrien'restart') 10438494Sobrien # kill hlfsd, wait for it to die, then restart 10538494Sobrien echo "killing hlfsd..." 10638494Sobrien ctl-hlfsd stop 10738494Sobrien echo "Waiting for 10 seconds..." 10842629Sobrien sleep 10 # hope that would be enough 10938494Sobrien echo "Restarting hlfsd..." 11038494Sobrien ctl-hlfsd start 11138494Sobrien ;; 11238494Sobrien 11338494Sobrien*) 11438494Sobrien echo "Usage: @sbindir@/ctl-hlfsd [ start | stop | restart ]" 11538494Sobrien ;; 11638494Sobrienesac 117