Copyright © tutorialspoint.com
flock [-sxun] [-w timeout] fd
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 doesnt 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.
| Tag | Description |
|---|---|
| -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 © tutorialspoint.com