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.
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.
The following example shows how shlock would be used within a shell script:
LOCK=/news/news/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
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 be 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.