NAME
flock - Manage locks from shell scripts
SYNOPSIS
flock [-sxon] [-w timeout] lockfile [-c] command...
flock [-sxun] [-w timeout] fd
DESCRIPTION
This utility manages
flock(2)
locks from within shell scripts or the command line.
The first form wraps the lock around the executing a command, in a manner similar to
su(1)
or
newgrp(1).
It locks a specified file, which is created (assuming appropriate
permissions), if it does not already exist.
The second form is convenient inside shell scripts, and is usually
used the following manner:
(
flock -s 200
# ... commands executed under lock ...
) 200>/var/lock/mylockfile
The mode used to open the file doesn't matter to flock; using
> or >> allows the lockfile to be created if it does not
already exist, however, write permission is required; using <
requires that the file already exists but only read permission is
required.
By default, if the lock cannot be immediately acquired, flock
waits until the lock is available.
OPTIONS
-s,
--shared
Obtain a shared lock, sometimes called a read lock.
-x,
-e,
--exclusive
Obtain an exclusive lock, sometimes called a write lock. This is the
default.
-u,
--unlock
Drop a lock. This is usually not required, since a lock is
automatically dropped when the file is closed. However, it may be
required in special cases, for example if the enclosed command group
may have forked a background process which should not be holding the
lock.
-n,
--nb,
--nonblock
Fail (with an exit code of 1) rather than wait if the lock cannot be
immediately acquired.
-w,
--wait,
--timeout seconds
Fail (with an exit code of 1) if the lock cannot be acquired within
seconds seconds. Decimal fractional values are allowed.
-o,
--close
Close the file descriptor on which the lock is held before executing
command. This is useful if command spawns a child process
which should not be hold ing the lock.
-c,
--command command
Pass a single command to the shell with -c.
-h,
--help
Print a help message.
AUTHOR
Written by H. Peter Anvin <hpa@zytor.com>.
COPYRIGHT
Copyright 2003-2006 H. Peter Anvin.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
SEE ALSO
AVAILABILITY
The flock command is part of the util-linux-ng package and is available from
ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/.