shlock



SHLOCK(1)                                                            SHLOCK(1)




NAME

       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 currently-active process.


OPTIONS

       -b     Process  IDs  are  normally  read  and written in ASCII.  If the
              ‘‘-b’’ flag is used, then they will be written 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 succeeded), 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


BUGS

       shlock assumes that it will not be used in an environment with multiple
       locks/unlocks in a short time (due to  a  race  condition).   That  is,
       shlock is intended for daily or hourly jobs.


HISTORY

       Written  by  Rich  $alz <rsalz@uunet.uu.net> after a description of HDB
       UUCP locking given by Peter Honeyman.   This  is  revision  1.7,  dated
       2002/10/01.


SEE ALSO

       inn.conf(5)



                                                                     SHLOCK(1)

Man(1) output converted with man2html