home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Unix System Administration Handbook 1997 October
/
usah_oct97.iso
/
news
/
cnews.tar
/
util
/
lock
< prev
next >
Wrap
Text File
|
1995-04-27
|
1KB
|
61 lines
#! /bin/sh
# lock - lock the news system
# =()<. ${NEWSCONFIG-@<NEWSCONFIG>@}>()=
. ${NEWSCONFIG-/etc/news/bin/config}
PATH=$NEWSCTL/bin:$NEWSBIN:$NEWSPATH ; export PATH
umask $NEWSUMASK
usage="Usage: $0 [-o] [-v] lockname pid [sleeptime]"
persist=y
verbose=n
for arg
do
case "$1" in
-o) persist=n ;;
-v) verbose=y ;;
--) shift ; break ;;
-*) echo "$usage" >&2 ; exit 2 ;;
*) break ;;
esac
shift
done
case "$#" in
2) sleep=30 ;;
3) sleep="$3" ;;
*) echo "$usage" >&2 ; exit 2 ;;
esac
case "$1" in
*/*) lock=$1 ; ltemp=$1.$$ ;;
*) lock=$NEWSCTL/$1 ; ltemp=$NEWSCTL/L.$$ ;;
esac
pid="$2"
status=1
trap 'rm -f $ltemp ; trap 0 ; exit $status' 0 1 2 15
echo "$pid" >$ltemp || exit 1
while :
do
if newslock $ltemp $lock
then
status=0
touch $lock # make the date current
exit
elif test ! -f $ltemp
then
echo "$0: \`$ltemp' disappeared!!" >&2
exit
elif test " $persist" = " n"
then
exit
fi
if test " $verbose" = " y"
then
echo 'news system locked, waiting...'
fi
sleep $sleep
done