flock — Manage locks from shell scripts
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 conveninent 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.
−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.
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.
|