'\" t .\" Title: flock .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.26 .\" Date: 2026-05-18 .\" Manual: Användarkommandon .\" Source: util-linux 2.42.1 .\" Language: English .\" .TH "FLOCK" "1" "2026-05-18" "util\-linux 2.42.1" "Användarkommandon" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .ss \n[.ss] 0 .nh .ad l .de URL \fI\\$2\fP <\\$1>\\$3 .. .als MTO URL .if \n[.g] \{\ . mso www.tmac . am URL . ad l . . . am MTO . ad l . . . LINKSTYLE blue R < > .\} .SH "NAMN" flock \- hantera lås från skalskript .SH "SYNOPSIS" .sp \fBflock\fP [flaggor] \fIfil\fP|\fIkatalog\fP \fIkommando\fP [\fIarguments\fP] .sp \fBflock\fP [flaggor] \fIfil\fP|\fIkatalog\fP \fB\-c\fP \fIkommando\fP .sp \fBflock\fP [flaggor] \fInummer\fP .SH "BESKRIVNING" .sp Detta verktyg hanterar \fBflock\fP(2)\-lås inifrån skalskript eller från kommandoraden. .sp Den första och andra av ovanstående former låser utförandet av ett \fIkommando\fP, på ett sätt som liknar \fBsu\fP(1) eller \fBnewgrp\fP(1). De låser en angiven \fIfil\fP eller \fIkatalog\fP, som skapas (med lämpliga behörigheter) om den inte redan finns. Om låset inte kan förvärvas omedelbart väntar \fBflock\fP som standard tills låset är tillgängligt. .sp Den tredje formen använder en öppen fil med dess filbeskrivare \fInummer\fP. Se exemplen nedan för hur det kan användas. .SH "FLAGGOR" .sp \fB\-c\fP, \fB\-\-command\fP \fIkommando\fP .RS 4 Skicka ett enda \fIkommando\fP, utan argument, till skalet med \fB\-c\fP. .RE .sp \fB\-E\fP, \fB\-\-conflict\-exit\-code\fP \fInummer\fP .RS 4 Avslutningsstatus som används när flaggan \fB\-n\fP används och det finns ett motstridigt lås, eller när flaggan \fB\-w\fP används och tidsgränsen har uppnåtts. Standardvärdet är \fB1\fP. \fInummer\fP måste ligga inom intervallet 0 till 255. .RE .sp \fB\-F\fP, \fB\-\-no\-fork\fP .RS 4 Gör ingen fork innan du utför \fIkommando\fP. När flock\-processen exekveras ersätts den av \fIkommando\fP som fortsätter att hålla låset. Den här flaggan är inte kompatibelt med \fB\-\-close\fP eftersom det annars inte skulle finnas något kvar att hålla låset. .RE .sp \fB\-e\fP, \fB\-x\fP, \fB\-\-exclusive\fP .RS 4 Skaffa ett exklusivt lås, ibland kallat skrivlås. Detta är standardinställningen. .RE .sp \fB\-n\fP, \fB\-\-nb\fP, \fB\-\-nonblocking\fP .RS 4 Misslyckas i stället för att vänta om låset inte kan förvärvas omedelbart. Se flaggan \fB\-E\fP för den avslutsstatus som används. .RE .sp \fB\-o\fP, \fB\-\-close\fP .RS 4 Stäng filbeskrivaren som låset hålls på innan du utför \fIkommando\fP. Detta är användbart om \fIkommando\fP startar en underordnad process som inte bör hålla låset. .RE .sp \fB\-s\fP, \fB\-\-shared\fP .RS 4 Få ett delat lås, ibland kallat ett läslås. .RE .sp \fB\-u\fP, \fB\-\-unlock\fP .RS 4 Släpp ett lås. Detta är vanligtvis inte nödvändigt, eftersom ett lås automatiskt släpps när filen stängs. Det kan dock krävas i särskilda fall, t.ex. om den bifogade kommandogruppen kan ha förgrenat en bakgrundsprocess som inte borde hålla låset. .RE .sp \fB\-w\fP, \fB\-\-wait\fP, \fB\-\-timeout\fP \fIseconds\fP .RS 4 Misslyckas om låset inte kan förvärvas inom \fIsekunder\fP. Decimala fraktionerade värden är tillåtna. Se flaggan \fB\-E\fP för den avslutsstatus som används. Noll antal \fIsekunder\fP tolkas som \fB\-\-nonblock\fP. .RE .sp \fB\-\-fcntl\fP .RS 4 Instead of \fBflock\fP(2), apply an \fBfcntl\fP(2) open file description lock (that is, using the \fBF_OFD_SETLK\fP (non\-blocking) or \fBF_OFD_SETLKW\fP (blocking) commands). These locks are independent of those applied via \fBflock\fP(2), but, unlike traditional POSIX \fBfcntl\fP(2) locks (\fBF_SETLK\fP, \fBF_SETLKW\fP), have semantics matching those of \fBflock\fP(2). .sp Detta är endast tillgängligt för kärnversioner >= 3.15. .RE .sp \fB\-\-start\fP \fIoffset\fP .RS 4 The starting offset for lock. This option implies \fB\-\-fcntl\fP. .RE .sp \fB\-\-length\fP \fInumber\fP .RS 4 The number of bytes to lock. This option implies \fB\-\-fcntl\fP. .RE .sp \fB\-\-verbose\fP .RS 4 Rapportera hur lång tid det tog att skaffa låset eller varför låset inte kunde skaffas. .RE .sp \fB\-h\fP, \fB\-\-help\fP .RS 4 Visa hjälptext och avsluta. .RE .sp \fB\-V\fP, \fB\-\-version\fP .RS 4 Visa version och avsluta. .RE .SH "AVSLUTSSTATUS" .sp Kommandot använder utgångsstatusvärden för allt, utom när något av flaggorna \fB\-n\fP eller \fB\-w\fP används, som rapporterar ett misslyckande med att förvärva låset med en utgångsstatus som anges av flaggan \fB\-E\fP, eller 1 som standard. Utgångsstatusen som ges av \fB\-E\fP måste ligga inom intervallet 0 till 255. .sp När \fIkommando\fP\-varianten används och det underordnade kommandot utförs, är utgångsstatusen den som gäller för det underordnade kommandot. .SH "ANTECKNINGAR" .sp \fBflock\fP upptäcker inte deadlock. Se \fBflock\fP(2) för mer information. .sp Vissa filsystem (t.ex. NFS och CIFS) har en begränsad implementering av \fBflock\fP(2) och flock kan alltid misslyckas. För detaljer se \fBflock\fP(2), \fBnfs\fP(5) och \fBmount.cifs\fP(8). Beroende på monterinsflaggor kan flock alltid misslyckas där. .SH "EXEMPEL" .sp Observera att "shell> " i exemplen är en kommandoradsprompt. .sp shell1> flock /tmp \-c cat; shell2> flock \-w .007 /tmp \-c echo; /bin/echo $? .RS 4 Sätt exklusivt lås på katalogen \fI/tmp\fP och det andra kommandot kommer att misslyckas. .RE .sp shell1> flock \-s /tmp \-c cat; shell2> flock \-s \-w .007 /tmp \-c echo; /bin/echo $? .RS 4 Sätt shared lock till katalogen \fI/tmp\fP så kommer det andra kommandot inte att misslyckas. Observera att försök att få exklusivt lås med det andra kommandot skulle misslyckas. .RE .sp shell> flock \-x local\-lock\-fil echo \*(Aqa b c\*(Aq .RS 4 Hämta det exklusiva låset "local\-lock\-file" innan du kör echo med \*(Aqa b c\*(Aq. .RE .sp (; flock \-n 9 || exit 1; # .\|.\|. kommandon utförda under lås .\|.\|.; ) 9>/var/lock/mylockfile .RS 4 Formuläret är praktiskt i skalskript. Det läge som används för att öppna filen spelar ingen roll för \fBflock\fP; om du använder \fI>\fP eller \fI>>\fP kan låsfilen skapas om den inte redan finns, men skrivbehörighet krävs. Om du använder \fI<\fP krävs att filen redan finns, men endast läsbehörighet krävs. .RE .sp [ "${FLOCKER}" != "$0" ] && exec env FLOCKER="$0" flock \-en "$0" "$0" "$@" || : .RS 4 Detta är användbar standardkod för skalskript. Lägg den högst upp i det skalskript som du vill låsa så låser det sig automatiskt vid första körningen. Om miljövariabeln \fB$FLOCKER\fP inte är inställd på det skalskript som körs, exekveras \fBflock\fP och tar ett exklusivt icke\-blockerande lås (med själva skriptet som låsfil) innan det exekveras igen med rätt argument. Det ställer också in miljövariabeln \fBFLOCKER\fP till rätt värde så att det inte körs igen. .RE .sp shell> exec 4<>/var/lock/mylockfile; shell> flock \-n 4 .RS 4 Denna form är lämplig för att låsa en fil utan att starta en subprocess. Shell öppnar låsfilen för läsning och skrivning som fildeskriptor 4, sedan används \fBflock\fP för att låsa deskriptorn. .RE .SH "UPPHOVSPERSONER" .sp .MTO "hpa\(atzytor.com" "H. Peter Anvin" "" .SH "UPPHOVSRÄTT" .sp Copyright © 2003\-2006 H. Peter Anvin. Detta är fri programvara; se källan för kopieringsvillkor. Det finns INGEN garanti; inte ens för SÄLJBARHET eller LÄMPLIGHET FÖR ETT BESTÄMMT SYFTE. .SH "SE ÄVEN" .sp \fBflock\fP(2), \fBfcntl\fP(2) .SH "FELRAPPORTERING" .sp För felrapporter, använd \c .URL "https://github.com/util\-linux/util\-linux/issues" "felhanteraren" "." .SH "TILLGÄNGLIGHET" .sp Kommandot \fBflock\fP ingår i paketet util\-linux som kan hämtas från \c .URL "https://www.kernel.org/pub/linux/utils/util\-linux/" "Linux Kernel Archive" "."