.\" -----------------------------------------------------------------------
.\"
.\"   Copyright 2003-2006 H. Peter Anvin - All Rights Reserved
.\"
.\"   Permission is hereby granted, free of charge, to any person
.\"   obtaining a copy of this software and associated documentation
.\"   files (the "Software"), to deal in the Software without
.\"   restriction, including without limitation the rights to use,
.\"   copy, modify, merge, publish, distribute, sublicense, and/or
.\"   sell copies of the Software, and to permit persons to whom
.\"   the Software is furnished to do so, subject to the following
.\"   conditions:
.\"
.\"   The above copyright notice and this permission notice shall
.\"   be included in all copies or substantial portions of the Software.
.\"
.\"   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
.\"   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
.\"   OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
.\"   NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
.\"   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
.\"   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
.\"   FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
.\"   OTHER DEALINGS IN THE SOFTWARE.
.\"
.\" -----------------------------------------------------------------------
.TH FLOCK 1 "July 2014" "util-linux" "User Commands"
.SH NAME
flock \- manage locks from shell scripts
.SH SYNOPSIS
.B flock
[options]
.IR file | "directory command " [ arguments ]
.br
.B flock
[options]
.IR file | directory
.BI \-c " command"
.br
.B flock
.RI [options] " number"
.SH DESCRIPTION
.PP
This utility manages
.BR flock (2)
locks from within shell scripts or from the command line.
.PP
The first and second of the above forms wrap the lock around the execution of a
.IR command ,
in a manner similar to
.BR su (1)
or
.BR newgrp (1).
They lock a specified \fIfile\fR or \fIdirectory\fR, which is created (assuming
appropriate permissions) if it does not already exist.  By default, if the
lock cannot be immediately acquired,
.B flock
waits until the lock is available.
.PP
The third form uses an open file by its file descriptor \fInumber\fR.
See the examples below for how that can be used.
.SH OPTIONS
.TP
.BR \-c , " \-\-command " \fIcommand
Pass a single \fIcommand\fR, without arguments, to the shell with
.BR \-c .
.TP
.BR \-E , " \-\-conflict\-exit\-code " \fInumber
The exit code used when the \fB\-n\fP option is in use, and the
conflicting lock exists, or the \fB\-w\fP option is in use,
and the timeout is reached.  The default value is \fB1\fR.
.TP
.BR \-F , " \-\-no\-fork"
Do not fork before executing
.IR command .
Upon execution the flock process is replaced by
.I command
which continues to hold the lock. This option is incompatible with
\fB\-\-close\fR as there would otherwise be nothing left to hold the lock.
.TP
.BR \-e , " \-x" , " \-\-exclusive"
Obtain an exclusive lock, sometimes called a write lock.  This is the
default.
.TP
.BR \-n , " \-\-nb" , " \-\-nonblock"
Fail rather than wait if the lock cannot be
immediately acquired.
See the
.B \-E
option for the exit code used.
.TP
.BR \-o , " \-\-close"
Close the file descriptor on which the lock is held before executing
.IR command .
This is useful if
.I command
spawns a child process which should not be holding the lock.
.TP
.BR \-s , " \-\-shared"
Obtain a shared lock, sometimes called a read lock.
.TP
.BR \-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.
.TP
.BR \-w , " \-\-wait" , " \-\-timeout " \fIseconds
Fail if the lock cannot be acquired within
.IR seconds .
Decimal fractional values are allowed.
See the
.B \-E
option for the exit code used. The zero number of
.I seconds
is interpreted as \fB\-\-nonblock\fR.
.TP
.B \-\-verbose
Report how long it took to acquire the lock, or why the lock could not be
obtained.
.TP
.BR \-V , " \-\-version"
Display version information and exit.
.TP
.BR \-h , " \-\-help"
Display help text and exit.
.SH EXAMPLES
.TP
shell1> flock /tmp -c cat
.TQ
shell2> flock -w .007 /tmp -c echo; /bin/echo $?
Set exclusive lock to directory /tmp and the second command will fail.
.TP
shell1> flock -s /tmp -c cat
.TQ
shell2> flock -s -w .007 /tmp -c echo; /bin/echo $?
Set shared lock to directory /tmp and the second command will not fail.
Notice that attempting to get exclusive lock with second command would fail.
.TP
shell> flock -x local-lock-file echo 'a b c'
Grab the exclusive lock "local-lock-file" before running echo with 'a b c'.
.TP
(
.TQ
  flock -n 9 || exit 1
.TQ
  # ... commands executed under lock ...
.TQ
) 9>/var/lock/mylockfile
The form is convenient inside shell scripts.  The mode used to open the file
doesn't matter to
.BR flock ;
using
.I >
or
.I >>
allows the lockfile to be created if it does not already exist, however,
write permission is required.  Using
.I <
requires that the file already exists but only read permission is required.
.TP
[ "${FLOCKER}" != "$0" ] && exec env FLOCKER="$0" flock -en "$0" "$0" "$@" || :
This is useful boilerplate code for shell scripts.  Put it at the top of the
shell script you want to lock and it'll automatically lock itself on the first
run.  If the env var $FLOCKER is not set to the shell script that is being run,
then execute flock and grab an exclusive non-blocking lock (using the script
itself as the lock file) before re-execing itself with the right arguments.  It
also sets the FLOCKER env var to the right value so it doesn't run again.
.SH "EXIT STATUS"
The command uses
.B sysexits.h
return values for everything, except when using either of the options
.B \-n
or
.B \-w
which report a failure to acquire the lock with a return value given by the
.B \-E
option, or 1 by default.
.PP
When using the \fIcommand\fR variant, and executing the child worked, then
the exit status is that of the child command.
.SH AUTHOR
.UR hpa@zytor.com
H. Peter Anvin
.UE
.SH COPYRIGHT
Copyright \(co 2003\-2006 H. Peter Anvin.
.br
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
.SH "SEE ALSO"
.BR flock (2)
.SH AVAILABILITY
The flock command is part of the util-linux package and is available from
.UR https://\:www.kernel.org\:/pub\:/linux\:/utils\:/util-linux/
Linux Kernel Archive
.UE .
