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>
