Changeset View
Changeset View
Standalone View
Standalone View
head/usr.bin/lockf/lockf.1
Show All 18 Lines | |||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||||
.\" SUCH DAMAGE. | .\" SUCH DAMAGE. | ||||
.\" | .\" | ||||
.\" $FreeBSD$ | .\" $FreeBSD$ | ||||
.\" | .\" | ||||
.Dd July 7, 1998 | .Dd June 18, 2020 | ||||
.Dt LOCKF 1 | .Dt LOCKF 1 | ||||
.Os | .Os | ||||
.Sh NAME | .Sh NAME | ||||
.Nm lockf | .Nm lockf | ||||
.Nd execute a command while holding a file lock | .Nd execute a command while holding a file lock | ||||
.Sh SYNOPSIS | .Sh SYNOPSIS | ||||
.Nm | .Nm | ||||
.Op Fl kns | .Op Fl kns | ||||
▲ Show 20 Lines • Show All 54 Lines • ▼ Show 20 Lines | |||||
.Nm | .Nm | ||||
to operate silently. | to operate silently. | ||||
Failure to acquire the lock is indicated only in the exit status. | Failure to acquire the lock is indicated only in the exit status. | ||||
.It Fl n | .It Fl n | ||||
Causes | Causes | ||||
.Nm | .Nm | ||||
to fail if the specified lock | to fail if the specified lock | ||||
.Ar file | .Ar file | ||||
does not exist. If | does not exist. | ||||
If | |||||
.Fl n | .Fl n | ||||
is not specified, | is not specified, | ||||
.Nm | .Nm | ||||
will create | will create | ||||
.Ar file | .Ar file | ||||
if necessary. | if necessary. | ||||
.It Fl t Ar seconds | .It Fl t Ar seconds | ||||
Specifies a timeout for waiting for the lock. | Specifies a timeout for waiting for the lock. | ||||
▲ Show 20 Lines • Show All 48 Lines • ▼ Show 20 Lines | |||||
.Xr fork 2 ) | .Xr fork 2 ) | ||||
failed unexpectedly. | failed unexpectedly. | ||||
.It Dv EX_SOFTWARE | .It Dv EX_SOFTWARE | ||||
The | The | ||||
.Ar command | .Ar command | ||||
did not exit normally, | did not exit normally, | ||||
but may have been signaled or stopped. | but may have been signaled or stopped. | ||||
.El | .El | ||||
.Sh EXAMPLES | |||||
The first job takes a lock and sleeps for 5 seconds in the background. | |||||
The second job tries to get the lock and timeouts after 1 second (PID numbers | |||||
will differ): | |||||
.Bd -literal -offset indent | |||||
$ lockf mylock sleep 5 & lockf -t 1 mylock echo "Success" | |||||
[1] 94410 | |||||
lockf: mylock: already locked | |||||
.Ed | |||||
.Pp | |||||
The first job takes a lock and sleeps for 1 second in the background. | |||||
The second job waits up to 5 seconds to take the lock and echoes the message on | |||||
success (PID numbers will differ): | |||||
.Bd -literal -offset indent | |||||
$ lockf mylock sleep 1 & lockf -t 5 mylock echo "Success" | |||||
[1] 19995 | |||||
Success | |||||
[1]+ Done lockf mylock sleep 1 | |||||
.Ed | |||||
.Sh SEE ALSO | .Sh SEE ALSO | ||||
.Xr flock 2 , | .Xr flock 2 , | ||||
.Xr lockf 3 , | .Xr lockf 3 , | ||||
.Xr sysexits 3 | .Xr sysexits 3 | ||||
.Sh HISTORY | .Sh HISTORY | ||||
A | A | ||||
.Nm | .Nm | ||||
utility first appeared in | utility first appeared in | ||||
.Fx 2.2 . | .Fx 2.2 . | ||||
.Sh AUTHORS | .Sh AUTHORS | ||||
.An John Polstra Aq Mt jdp@polstra.com | .An John Polstra Aq Mt jdp@polstra.com |