> We are just issuing a go bg. Actually we have a crontab that does it > for us. What should we add to the "go" script to make it work better? > I would imagine other people have this problem also. My script for our nightly cycle follows. I age off log files as I do this. This looks fairly simple, but there's some hidden learning, e.g. it takes our LISTSERV 30 seconds to die sometimes, due to delays in closing down all its delivery channels. Also, sending a "STOP" command is almost completely pointless, as it can take too long to get through the queue to be useful. (I had one sent at midnight-ish which was acted upon at 2:08 AM, long after a kill-restart, once.) On VM, where interactive messages were taken out of order, STOP worked better. (Listening, Eric? :-) Of course, on VM, closing spooled console logs and transferring them was nicer too. Dennis Boone H-Net #!/bin/sh # listserv_cycle, Boone, 07/09/99 # Restart listserv daily, cycle log files # Initialize NOTIFY="[log in to unmask]" LSVHOME="/h-net/listserv/listserv" TODAY=`date +%Y%m%d` cd $LSVHOME # Stop listserv # Yo, wake up and die PIDS=`ps auxww | grep lsv | grep -v grep | awk '{print $2}'` if [ "X$PIDS" != "X" ] then kill $PIDS sleep 60 fi # Serious lossage; phasers on kill PIDS=`ps auxww | grep lsv | grep -v grep | awk '{print $2}'` I=0 SIG= while [ "X$PIDS" != "X" ] do I=`expr $I + 1` if [ $I -gt 1 ] then /usr/bin/Mail -s "listserv failed to stop" \ $NOTIFY <<EOF Listserv (pids $PIDS) failed to stop when killed. Iteration count is now $I. EOF fi if [ $I -gt 2 ] then # Eat flaming death SIG="-9" fi kill $SIG $PIDS sleep 30 PIDS=`ps auxww | grep lsv | grep -v grep | awk '{print $2}'` done # Age the log file mv listserv.log log_archives/listserv.log.$TODAY # Restart listserv ./go bg & # Done exit 0