shlock - create lock files for use in shell scripts


SYNOPSIS

       shlock -p pid -f name [ -b ] [ -u ] [ -c ]


DESCRIPTION

       Shlock  tries  to  create a lock file named name and write
       the process ID pid into it.  If the file  already  exists,
       shlock  will read the process ID from the file and test to
       see if the process is currently running.  If  the  process
       exists, then the file will not be created.

       Shlock  exits  with a zero status if it was able to create
       the lock file, or non-zero if  the  file  refers  to  cur­
       rently-active process.


OPTIONS

       -b     Process IDs are normally read and written in ASCII.
              If the ``-b'' flag is used, then they will be writ­
              ten  as a binary int.  For compatibility with other
              systems, the ``-u'' flag is accepted as  a  synonym
              for ``-b'' since binary locks are used by many UUCP
              packages.

       -c     If the ``-c'' flag is used, then  shlock  will  not
              create  a  lock file, but will instead use the file
              to see if the lock is held by another program.   If
              the  lock  is  valid,  the program will exit with a
              non-zero status; if the lock is  not  valid  (i.e.,
              invoking  shlock  without  the flag would have suc­
              ceeded), then the program will  exit  with  a  zero
              status.


EXAMPLES

       The  following  example  shows  how  shlock  would be used
       within a shell script:
              LOCK=<pathrun in inn.conf>/LOCK.send
              trap 'rm -f ${LOCK} ; exit 1' 1 2 3 15
              if shlock -p $$ -f ${LOCK} ; then
                  # Do appropriate work
              else
                  echo Locked by `cat ${LOCK}`
              fi


HISTORY

       Written by Rich $alz <rsalz@uunet.uu.net> after a descrip­
       tion of HDB UUCP locking given by Peter Honeyman.  This is
       revision 1.5, dated 1998/04/09.


SEE ALSO

       inn.conf(5)


Man(1) output converted with man2html