xref: /minix3/usr.bin/flock/flock.1 (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1*0a6a1f1dSLionel Sambuc.\"	$NetBSD: flock.1,v 1.10 2014/08/18 09:45:52 christos Exp $
29488aa4cSDavid van Moolenbroek.\"
39488aa4cSDavid van Moolenbroek.\" Copyright (c) 2012 The NetBSD Foundation, Inc.
49488aa4cSDavid van Moolenbroek.\" All rights reserved.
59488aa4cSDavid van Moolenbroek.\"
69488aa4cSDavid van Moolenbroek.\" This code is derived from software contributed to The NetBSD Foundation
79488aa4cSDavid van Moolenbroek.\" by Christos Zoulas.
89488aa4cSDavid van Moolenbroek.\"
99488aa4cSDavid van Moolenbroek.\" Redistribution and use in source and binary forms, with or without
109488aa4cSDavid van Moolenbroek.\" modification, are permitted provided that the following conditions
119488aa4cSDavid van Moolenbroek.\" are met:
129488aa4cSDavid van Moolenbroek.\" 1. Redistributions of source code must retain the above copyright
139488aa4cSDavid van Moolenbroek.\"    notice, this list of conditions and the following disclaimer.
149488aa4cSDavid van Moolenbroek.\" 2. Redistributions in binary form must reproduce the above copyright
159488aa4cSDavid van Moolenbroek.\"    notice, this list of conditions and the following disclaimer in the
169488aa4cSDavid van Moolenbroek.\"    documentation and/or other materials provided with the distribution.
179488aa4cSDavid van Moolenbroek.\"
189488aa4cSDavid van Moolenbroek.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
199488aa4cSDavid van Moolenbroek.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
209488aa4cSDavid van Moolenbroek.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
219488aa4cSDavid van Moolenbroek.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
229488aa4cSDavid van Moolenbroek.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
239488aa4cSDavid van Moolenbroek.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
249488aa4cSDavid van Moolenbroek.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
259488aa4cSDavid van Moolenbroek.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
269488aa4cSDavid van Moolenbroek.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
279488aa4cSDavid van Moolenbroek.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
289488aa4cSDavid van Moolenbroek.\" POSSIBILITY OF SUCH DAMAGE.
299488aa4cSDavid van Moolenbroek.\"
309488aa4cSDavid van Moolenbroek.\"
31*0a6a1f1dSLionel Sambuc.Dd August 18, 2014
329488aa4cSDavid van Moolenbroek.Dt FLOCK 1
339488aa4cSDavid van Moolenbroek.Os
349488aa4cSDavid van Moolenbroek.Sh NAME
359488aa4cSDavid van Moolenbroek.Nm flock
369488aa4cSDavid van Moolenbroek.Nd Provide locking API for shell scripts
379488aa4cSDavid van Moolenbroek.Sh SYNOPSIS
389488aa4cSDavid van Moolenbroek.Nm
399488aa4cSDavid van Moolenbroek.Op Fl dnosvx
409488aa4cSDavid van Moolenbroek.Op Fl w Ar timeout
419488aa4cSDavid van Moolenbroek.Ar lockfile|lockdir
429488aa4cSDavid van Moolenbroek.Op Fl c Ar command
439488aa4cSDavid van Moolenbroek|
449488aa4cSDavid van Moolenbroek.Op Ar command ...
459488aa4cSDavid van Moolenbroek.Nm
469488aa4cSDavid van Moolenbroek.Op Fl dnsuvx
479488aa4cSDavid van Moolenbroek.Op Fl w Ar timeout
489488aa4cSDavid van Moolenbroek.Ar lockfd
499488aa4cSDavid van Moolenbroek.Sh DESCRIPTION
509488aa4cSDavid van MoolenbroekThe
519488aa4cSDavid van Moolenbroek.Nm
529488aa4cSDavid van Moolenbroekutility provides
539488aa4cSDavid van Moolenbroek.Xr flock 2
549488aa4cSDavid van Moolenbroekaccess to the command line or scripts.
559488aa4cSDavid van MoolenbroekThe first form locks a file or directory while the command provided is executed.
569488aa4cSDavid van MoolenbroekIf the file or directory does not exist, then a file is created.
579488aa4cSDavid van Moolenbroek.Pp
589488aa4cSDavid van MoolenbroekThe second form can use an arbitrary file descriptor that is provided from a
599488aa4cSDavid van Moolenbroekshell script for example:
609488aa4cSDavid van Moolenbroek.Bd -literal
619488aa4cSDavid van Moolenbroek(
629488aa4cSDavid van Moolenbroek	flock -s 100
639488aa4cSDavid van Moolenbroek	# commands to be executed under the lock
649488aa4cSDavid van Moolenbroek) 100> /path/to/lockfile
659488aa4cSDavid van Moolenbroek.Ed
669488aa4cSDavid van Moolenbroek.Pp
679488aa4cSDavid van MoolenbroekThe following options are available:
689488aa4cSDavid van Moolenbroek.Bl -tag -width "XXXXXXXXXXXXXXXXX"
699488aa4cSDavid van Moolenbroek.It Fl c Ar command
709488aa4cSDavid van MoolenbroekPass a command to a the shell.
719488aa4cSDavid van Moolenbroek.It Fl d , Fl Fl debug
729488aa4cSDavid van MoolenbroekProvide debugging output.
739488aa4cSDavid van Moolenbroek.It Fl n , Fl Fl nb , Fl Fl nonblock
749488aa4cSDavid van MoolenbroekDon't block and fail immediately if the lock could not be obtained.
759488aa4cSDavid van Moolenbroek.It Fl o , Fl Fl close
769488aa4cSDavid van MoolenbroekClose the file before executing the command.
779488aa4cSDavid van MoolenbroekThis is useful if the child forks and should not be holding the lock.
789488aa4cSDavid van Moolenbroek.It Fl s , Fl Fl shared
799488aa4cSDavid van MoolenbroekObtain a shared lock.
809488aa4cSDavid van Moolenbroek.It Fl u , Fl Fl unlock
819488aa4cSDavid van MoolenbroekUnlock an existing lock.
829488aa4cSDavid van MoolenbroekThis is available only for a file descriptor.
839488aa4cSDavid van Moolenbroek.It Fl v , Fl Fl verbose
849488aa4cSDavid van MoolenbroekOn error print an explanation of the failure.
859488aa4cSDavid van Moolenbroek.It Fl w , Fl Fl wait , Fl Fl timeout Ar seconds
869488aa4cSDavid van MoolenbroekFail if the lock could not be obtained after
879488aa4cSDavid van Moolenbroek.Ar seconds .
889488aa4cSDavid van Moolenbroek.It Fl x , Fl Fl exclusive
899488aa4cSDavid van MoolenbroekObtain an exclusive lock.
90*0a6a1f1dSLionel SambucThis is the default.
919488aa4cSDavid van Moolenbroek.El
929488aa4cSDavid van Moolenbroek.Sh EXIT STATUS
939488aa4cSDavid van Moolenbroek.Ex -std
949488aa4cSDavid van Moolenbroek.Sh SEE ALSO
959488aa4cSDavid van Moolenbroek.Xr shlock 1 ,
969488aa4cSDavid van Moolenbroek.Xr flock 2
979488aa4cSDavid van Moolenbroek.Sh HISTORY
989488aa4cSDavid van MoolenbroekAn
999488aa4cSDavid van Moolenbroek.Nm
1009488aa4cSDavid van Moolenbroekutility appeared in
1019488aa4cSDavid van Moolenbroek.Nx 6.1 .
102