Skip site navigation (1)Skip section navigation (2)
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>