Date: Mon, 28 Jan 2002 10:14:11 -0500 From: Jason Andresen <jandrese@mitre.org> To: dan@langille.org Cc: freebsd-hackers@freebsd.org Subject: Re: shell scripts that hang around forever Message-ID: <3C556AC3.AFB26074@mitre.org> References: <200201280119.g0S1JHD97804@lists.unixathome.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Dan Langille wrote: > > Folks: have a look at this FreshPorts shell script and let me know if > there is a better way to do this. > > This script waits for a file to arrive in a directory, then runs a scipt > to process it. It's part of FreshPorts. the procmail script spools the > incoming cvs-all message to a temporary location, then moves it to the > incoming directory. > > The lockfile is an attempt to make the script single-entry (only one > instance at a time). If fails because the only way to exit the script is > to terminate it... > > At present, this script runs within a screen session (that's the easiest > way to control it). This script is sort of like a daemon, and I'm tempted > to replace it with one. If it was a daemon, I'm sure that would be much > easier. Wouldn't the following change be helpful if you always ^C the script to stop it? > #!/bin/sh > > LOCKFILE=${HOME}/msgs/processing.lock > MSGSDIR=${HOME}/msgs/FreeBSD/incoming cleanup() { rm -rf ${LOCKFILE} exit } trap cleanup sighup sigint sigquit sigill sigabrt sigterm > lockfile -r 0 $LOCKFILE > RESULT=$? > #echo result='$RESULT' > if [ $RESULT = 0 ] > then > cd ${MSGSDIR} > while . > do > FILECOUNT=`ls | wc -l` > > if [ $FILECOUNT -ne 0 ] > then > ls | xargs -n 1 $HOME/scripts/test-freebsd-cvs.sh > fi > > sleep 1 > done > cleanup > fi -- \ |_ _|__ __|_ \ __| Jason Andresen jandrese@mitre.org |\/ | | | / _| Network and Distributed Systems Engineer _| _|___| _| _|_\___| Office: 703-883-7755 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3C556AC3.AFB26074>