FLOCK(1) Anvandarkommandon FLOCK(1) NAMN flock - hantera las fran skalskript SYNOPSIS flock [flaggor] fil|katalog kommando [arguments] flock [flaggor] fil|katalog -c kommando flock [flaggor] nummer BESKRIVNING Detta verktyg hanterar flock(2)-las inifran skalskript eller fran kommandoraden. Den forsta och andra av ovanstaende former laser utforandet av ett kommando, pa ett satt som liknar su(1) eller newgrp(1). De laser en angiven fil eller katalog, som skapas (med lampliga behorigheter) om den inte redan finns. Om laset inte kan forvarvas omedelbart vantar flock som standard tills laset ar tillgangligt. Den tredje formen anvander en oppen fil med dess filbeskrivare nummer. Se exemplen nedan for hur det kan anvandas. FLAGGOR -c, --command kommando Skicka ett enda kommando, utan argument, till skalet med -c. -E, --conflict-exit-code nummer Avslutningsstatus som anvands nar flaggan -n anvands och det finns ett motstridigt las, eller nar flaggan -w anvands och tidsgransen har uppnatts. Standardvardet ar 1. nummer maste ligga inom intervallet 0 till 255. -F, --no-fork Gor ingen fork innan du utfor kommando. Nar flock-processen exekveras ersatts den av kommando som fortsatter att halla laset. Den har flaggan ar inte kompatibelt med --close eftersom det annars inte skulle finnas nagot kvar att halla laset. -e, -x, --exclusive Skaffa ett exklusivt las, ibland kallat skrivlas. Detta ar standardinstallningen. -n, --nb, --nonblocking Misslyckas i stallet for att vanta om laset inte kan forvarvas omedelbart. Se flaggan -E for den avslutsstatus som anvands. -o, --close Stang filbeskrivaren som laset halls pa innan du utfor kommando. Detta ar anvandbart om kommando startar en underordnad process som inte bor halla laset. -s, --shared Fa ett delat las, ibland kallat ett laslas. -u, --unlock Slapp ett las. Detta ar vanligtvis inte nodvandigt, eftersom ett las automatiskt slapps nar filen stangs. Det kan dock kravas i sarskilda fall, t.ex. om den bifogade kommandogruppen kan ha forgrenat en bakgrundsprocess som inte borde halla laset. -w, --wait, --timeout seconds Misslyckas om laset inte kan forvarvas inom sekunder. Decimala fraktionerade varden ar tillatna. Se flaggan -E for den avslutsstatus som anvands. Noll antal sekunder tolkas som --nonblock. --fcntl Instead of flock(2), apply an fcntl(2) open file description lock (that is, using the F_OFD_SETLK (non-blocking) or F_OFD_SETLKW (blocking) commands). These locks are independent of those applied via flock(2), but, unlike traditional POSIX fcntl(2) locks (F_SETLK, F_SETLKW), have semantics matching those of flock(2). Detta ar endast tillgangligt for karnversioner >= 3.15. --start offset The starting offset for lock. This option implies --fcntl. --length number The number of bytes to lock. This option implies --fcntl. --verbose Rapportera hur lang tid det tog att skaffa laset eller varfor laset inte kunde skaffas. -h, --help Visa hjalptext och avsluta. -V, --version Visa version och avsluta. AVSLUTSSTATUS Kommandot anvander utgangsstatusvarden for allt, utom nar nagot av flaggorna -n eller -w anvands, som rapporterar ett misslyckande med att forvarva laset med en utgangsstatus som anges av flaggan -E, eller 1 som standard. Utgangsstatusen som ges av -E maste ligga inom intervallet 0 till 255. Nar kommando-varianten anvands och det underordnade kommandot utfors, ar utgangsstatusen den som galler for det underordnade kommandot. ANTECKNINGAR flock upptacker inte deadlock. Se flock(2) for mer information. Vissa filsystem (t.ex. NFS och CIFS) har en begransad implementering av flock(2) och flock kan alltid misslyckas. For detaljer se flock(2), nfs(5) och mount.cifs(8). Beroende pa monterinsflaggor kan flock alltid misslyckas dar. EXEMPEL Observera att "shell> " i exemplen ar en kommandoradsprompt. shell1> flock /tmp -c cat; shell2> flock -w .007 /tmp -c echo; /bin/echo $? Satt exklusivt las pa katalogen /tmp och det andra kommandot kommer att misslyckas. shell1> flock -s /tmp -c cat; shell2> flock -s -w .007 /tmp -c echo; /bin/echo $? Satt shared lock till katalogen /tmp sa kommer det andra kommandot inte att misslyckas. Observera att forsok att fa exklusivt las med det andra kommandot skulle misslyckas. shell> flock -x local-lock-fil echo 'a b c' Hamta det exklusiva laset "local-lock-file" innan du kor echo med 'a b c'. (; flock -n 9 || exit 1; # ... kommandon utforda under las ...; ) 9>/var/lock/mylockfile Formularet ar praktiskt i skalskript. Det lage som anvands for att oppna filen spelar ingen roll for flock; om du anvander > eller >> kan lasfilen skapas om den inte redan finns, men skrivbehorighet kravs. Om du anvander < kravs att filen redan finns, men endast lasbehorighet kravs. [ "${FLOCKER}" != "$0" ] && exec env FLOCKER="$0" flock -en "$0" "$0" "$@" || : Detta ar anvandbar standardkod for skalskript. Lagg den hogst upp i det skalskript som du vill lasa sa laser det sig automatiskt vid forsta korningen. Om miljovariabeln $FLOCKER inte ar installd pa det skalskript som kors, exekveras flock och tar ett exklusivt icke-blockerande las (med sjalva skriptet som lasfil) innan det exekveras igen med ratt argument. Det staller ocksa in miljovariabeln FLOCKER till ratt varde sa att det inte kors igen. shell> exec 4<>/var/lock/mylockfile; shell> flock -n 4 Denna form ar lamplig for att lasa en fil utan att starta en subprocess. Shell oppnar lasfilen for lasning och skrivning som fildeskriptor 4, sedan anvands flock for att lasa deskriptorn. UPPHOVSPERSONER H. Peter Anvin UPPHOVSRATT Copyright (C) 2003-2006 H. Peter Anvin. Detta ar fri programvara; se kallan for kopieringsvillkor. Det finns INGEN garanti; inte ens for SALJBARHET eller LAMPLIGHET FOR ETT BESTAMMT SYFTE. SE AVEN flock(2), fcntl(2) FELRAPPORTERING For felrapporter, anvand felhanteraren . TILLGANGLIGHET Kommandot flock ingar i paketet util-linux som kan hamtas fran Linux Kernel Archive . util-linux 2.42.1 2026-05-18 FLOCK(1)