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

FreeBSD Manual Pages


home | help
LOCKF(1)		  BSD General Commands Manual		      LOCKF(1)

     lockf -- execute a	command	while holding a	file lock

     lockf [-ks] [-t seconds] file command [arguments]

     The lockf utility acquires	an exclusive lock on a file, creating it if
     necessary,	and removing the file on exit unless explicitly	told not to.
     While holding the lock, it	executes a command with	optional arguments.
     After the command completes, lockf	releases the lock, and removes the
     file unless the -k	option is specified.  BSD-style	locking	is used, as
     described in flock(2); the	mere existence of the file is not considered
     to	constitute a lock.

     If	the lockf utility is being used	to facilitate concurrency between a
     number of processes, it is	recommended that the -k	option be used.	 This
     will guarantee lock ordering, as well as implement	a performance enhanced
     algorithm which minimizes CPU load	associated with	concurrent unlink,
     drop and re-acquire activity.  It should be noted that if the -k option
     is	not used, then no guarantees around lock ordering can be made.

     The following options are supported:

     -k		 Causes	the lock file to be kept (not removed) after the com-
		 mand completes.

     -s		 Causes	lockf to operate silently.  Failure to acquire the
		 lock is indicated only	in the exit status.

     -t	seconds	 Specifies a timeout for waiting for the lock.	By default,
		 lockf waits indefinitely to acquire the lock.	If a timeout
		 is specified with this	option,	lockf will wait	at most	the
		 given number of seconds before	giving up.  A timeout of 0 may
		 be given, in which case lockf will fail unless	it can acquire
		 the lock immediately.	When a lock times out, command is not

     In	no event will lockf break a lock that is held by another process.

     If	lockf successfully acquires the	lock, it returns the exit status pro-
     duced by command.	Otherwise, it returns one of the exit codes defined in
     sysexits(3), as follows:

     EX_TEMPFAIL   The specified lock file was already locked by another

     EX_CANTCREAT  The lockf utility was unable	to create the lock file, e.g.,
		   because of insufficient access privileges.

     EX_USAGE	   There was an	error on the lockf command line.

     EX_OSERR	   A system call (e.g.,	fork) failed unexpectedly.

     EX_SOFTWARE   The command did not exit normally, but may have been	sig-
		   naled or stopped.

     flock(2), sysexits(3)

     A lockf utility first appeared in FreeBSD 2.2.

     John Polstra <>.

BSD				 July 7, 1998				   BSD


Want to link to this manual page? Use this URL:

home | help