shlock8
Create lock files for use in shell scripts
Usage
shlock [{-b | -c | -u}]
-f
name
-p
pid
Overview
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 whether the process is currently running. If the process exists, then the file will not be created. shlock exits with a zero status if it could create the lock file, or non-zero if the file refers to a currently active process.
A Perl wrapper around shlock can be used via the "INN::Utils::Shlock" module.
Options
-
-b -
Process IDs are normally read and written in ASCII. If the
-bflag is used, then they will be written as a binary int.
-
-c -
If the
-cflag is used, thenshlockwill 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. invokingshlockwithout the flag would have succeeded), then the program will exit with a zero status.
-
-f name -
name is the name of the lock file
shlockattempts to create. If the file already exists, it will read the process ID from the file and exit with a non-zero status if this process is currently active.
-
-p pid -
pid is the process ID to write into the file name.
-
-u -
For compatibility with other systems, the
-uflag is accepted as a synonym for-bsince binary locks are used by many UUCP packages.
Examples
The following example shows how shlock would be used within a shell script:
LOCK=<pathrun in inn.conf>/LOCK.sendtrap 'rm -f ${LOCK} ; exit 1' 1 2 3 15if shlock -p $$ -f ${LOCK} ; then# Do appropriate work.elseecho "Locked by `cat ${LOCK}`"fi
Releases
2 releases since Debian 13 (Trixie); the text changed 1 time.