flock(1)
flock(1)
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. 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 returvärde 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åset manuellt. Vanligtvis onödigt.
-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 ≥ 3.15.
--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). Vissa filsystem (t.ex. NFS, CIFS) har begränsat stöd. 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å `local.lock`.
( flock -n 9 || exit 1; ... ) 9>/var/lock/my.lock
- Skalvänlig syntax. Låset hålls via filbeskrivare 9.
Självlåsande skript:
[ "$FLOCKER" != "$0" ] && exec env FLOCKER="$0" flock -en "$0" "$0" "$@" || :
exec 4<>/var/lock/my.lock; flock -n 4
- Lås via filbeskrivare 4 utan ny process.
Författare
H. Peter Anvin <hpa@zytor.com>
Copyright
© 2003–2006 H. Peter Anvin. Fri programvara enligt licensvillkor i källkoden. Ingen garanti.
Se även
Rapportering av fel
Rapportera buggar via: https://github.com/util-linux/util-linux/issues
Tillgänglighet
`flock` är en del av util-linux, tillgänglig från: https://www.kernel.org/pub/linux/utils/util-linux/
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.