Zamykani v shell skriptu
Martin Mačok
martin.macok na underground.cz
Středa Prosinec 6 15:43:28 CET 2000
On Wed, Dec 06, 2000 at 03:23:42PM +0100, Gratz Jaroslav wrote:
> Potreboval bych v shell skriptu zajistit, aby mi dva stejne skripty
> neprovadely nejakou vec soucasne. Ty skripty se muzou spustit zcela
> nahodne. Zatim to resim takto:
PROGPATH=/home/martin/misc/setiathome-2.0
PROGCMD=./setiathome
PROGOPT="-nice 19"
PROGOUT=LOG
PROGLOCK=$PROGPATH/running
VERBOSE=false
trap PROGSTOP `seq 1 15`
function PROGSTART () {
if mkdir "$PROGLOCK" 2>/dev/null; then
cd $PROGPATH
$VERBOSE && echo "Starting $PROGCMD $PROGOPT"
$PROGCMD $PROGOPT >$PROGOUT &
PROGPID=$!
touch $PROGLOCK/$PROGPID
fi
}
function PROGSTOP () {
if [ -d "$PROGLOCK" ] ; then
PROGPID=`ls $PROGLOCK`
if rm $PROGLOCK/$PROGPID ; then
rmdir $PROGLOCK
kill -HUP $PROGPID
$VERBOSE && echo "Stopping $PROGCMD $PROGOPT"
kill $PROGPID
fi
fi
}
To je priklad, jak se da zajistit, aby funkce PROGSTOP a PROGSTART
nemohly probihat soucasne.
--
< Martin Mačok .-= martin.macok na underground.cz =-. < iso-8859-2 >
\\. http://kocour.ms.mff.cuni.cz/~macok/ http://underground.cz/ .//
\\\.. `-= t.r.u.s.t n.0 o.n.e =-' ..///
Další informace o konferenci Linux