NAME
lockf
—
execute a command while holding a file
lock
SYNOPSIS
lockf |
[-ks ] [-t
seconds] file
command [arguments] |
DESCRIPTION
Thelockf
utility acquires an exclusive lock on a
file, creating it if necessary. 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.
The following options are supported:
-k
- Causes the lock file to be kept (not removed) after the command 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 caselockf
will fail unless it can acquire the lock immediately.
In no event will lockf
break a lock that
is held by another process.
EXIT STATUS
If lockf
successfully acquires the lock,
it returns the exit status produced 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 process.
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.
SEE ALSO
HISTORY
A lockf
utility first appeared in
FreeBSD 2.2.
AUTHORS
John Polstra <jdp@polstra.com>