flock —
Provide locking API for shell scripts
flock |
[-dnosvx] [-w
timeout] lockfile|lockdir
[-c command] |
[command ...] |
flock |
[-dnsuvx] [-w
timeout] lockfd |
The flock utility provides
flock(2) access to the command
line or scripts. The first form locks a file or directory while the command
provided is executed. If the file or directory does not exist, then a file is
created.
The second form can use an arbitrary file descriptor that is
provided from a shell script for example:
(
flock -s 100
# commands to be executed under the lock
) 100> /path/to/lockfile
The following options are available:
-c
command
- Pass a command to a the shell.
-d,
--debug
- Provide debugging output.
-n,
--nb,
- -nonblock
- Don't block and fail immediately if the lock could not be obtained.
-o,
--close
- Close the file before executing the command. This is useful if the child
forks and should not be holding the lock.
-s,
--shared
- Obtain a shared lock.
-u,
--unlock
- Unlock an existing lock. This is available only for a file
descriptor.
-v,
--verbose
- On error print an explanation of the failure.
-w,
--wait,
- -timeout
seconds
- Fail if the lock could not be obtained after
seconds.
-x,
--exclusive
- Obtain an exclusive lock. This is the default.
The flock utility exits 0 on success,
and >0 if an error occurs.
An flock utility appeared in NetBSD
6.1.