flock(1)

Från Wiki.linux.se
Version från den 26 mars 2025 kl. 07.33 av Admin (diskussion | bidrag)
Hoppa till navigering Hoppa till sök
Namn
flock – hantera fil-lås från skalskript
Synopsis
flock [FLAGGOR] FIL|KATALOG KOMMANDO [ARGUMENT...]
flock [FLAGGOR] FIL|KATALOG -c KOMMANDO
flock [FLAGGOR] NUMMER
Beskrivning
Det här verktyget hanterar flock(2)-lås från skalskript eller kommandoraden.
De två första formerna omsluter ett lås runt exekveringen av ett kommando, på ett liknande sätt som su(1) eller newgrp(1). Den specificerade filen eller katalogen låses (skapas om den inte redan finns).
Den tredje formen använder ett redan öppnat filbeskrivarnummer (t.ex. 9> /var/lock/foo).
Som standard väntar `flock` tills låset kan erhållas.
Flaggor
-c, --command=KOMMANDO
Kör ett enskilt kommando genom skalet med `-c`.
-E, --conflict-exit-code=NUMMER
Ange returkod (0–255) vid konflikt eller timeout med `-n` eller `-w`. Standard är 1.
-F, --no-fork
Utför inte fork före kommandot. Flock-processen ersätts av kommandot som då fortsätter hålla låset. Inkompatibel med `--close`.
-e, -x, --exclusive
Ta ett exklusivt (skriv-)lås. Detta är standard.
-n, --nb, --nonblock
Misslyckas direkt om lås inte kan tas. Påverkar returkod enligt `-E`.
-o, --close
Stäng filbeskrivaren före exekvering av kommandot. Användbart om kommandot spånar barnprocesser.
-s, --shared
Ta ett delat (läs-)lås.
-u, --unlock
Släpp lås. Vanligtvis onödigt eftersom lås släpps automatiskt vid stängning av fil.
-w, --wait --timeout=SEKUNDER
Timeout i sekunder för att ta lås. Stöder decimaler. 0 är likvärdigt med `--nonblock`.
--fcntl
Använd fcntl(2) OFD-lås istället för flock(2). Kräver Linux-kärna ≥ 3.15. Dessa har liknande semantik som flock-lås, men är separata.
--verbose
Visa hur lång tid det tog att ta låset, eller orsak till misslyckande.
-h, --help
Visa hjälptext och avsluta.
-V, --version
Visa versionsinformation och avsluta.
Returvärden
Kommandot använder <sysexits.h>-värden, utom vid `-n` eller `-w`, där returvärde enligt `-E` används (standard 1).
Om ett underliggande kommando körs används dess returvärde.
Anmärkningar
`flock` detekterar inte deadlocks. Se flock(2) för detaljer.
Vissa filsystem (t.ex. NFS, CIFS) har begränsat stöd för flock(2), och låsning kan misslyckas helt. Se även nfs(5) och `mount.cifs(8)`.
Exempel
flock /tmp -c cat
Tar exklusivt lås på `/tmp`.
flock -s /tmp -c cat
Tar delat lås på `/tmp`.
flock -x local.lock echo 'a b c'
Kör kommandot med exklusivt lås på filen `local.lock`.
( flock -n 9 || exit 1; ... ) 9>/var/

Sidslut

Orginalhemsidan på Engelska https://man7.org/linux/man-pages/man1/flock.1.html Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp Bromma som har sponsrat Linux.se med webbhotell.