Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SHLOCK(8)		  InterNetNews Documentation		     SHLOCK(8)

NAME
       shlock -	Create lock files for use in shell scripts

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

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	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 -b flag
	   is used, then they will be written as a binary int.

       -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.

       -f name
	   name	is the name of the lock	file shlock attempts  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 -u flag is accepted as a
	   synonym for -b since	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.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>  for InterNetNews after a
       description of HDB UUCP locking given by	Peter Honeyman,	 and  improved
       by  Berend  Reitsma  to	solve  a  race condition.  Converted to	POD by
       Julien Elie.

SEE ALSO
       INN::Utils::Shlock(3pm).

INN 2.7.3			  2022-07-10			     SHLOCK(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=shlock&sektion=8&manpath=FreeBSD+Ports+15.0>

home | help