table of contents
FLOCK(1) | Polecenia użytkownika | FLOCK(1) |
NAZWA¶
flock - zarządza blokadami ze skryptów powłoki
SKŁADNIA¶
flock [opcje] plik|katalog polecenie [argumenty]
flock [opcje] plik|katalog -c polecenie
flock [opcje] numer
OPIS¶
Program zarządza blokami flock(2) z poziomu skryptów powłoki lub z wiersza poleceń.
Pierwsza i druga z powyższych postaci wywołania wiąże blokadę z wykonaniem polecenia, w podobny sposób do su(1) lub newgrp(1). Blokowany jest podany plik lub katalog, który jest tworzony (przy odpowiednich uprawnieniach), jeśli jeszcze nie istniał. Domyślnie, jeśli blokada nie może być od razu pozyskana, flock poczeka, aż stanie się dostępna.
Trzecia postać używa otwartego pliku określonego numerem deskryptora pliku. Przykłady podane poniżej wskazują na potencjalne zastosowania.
OPCJE¶
-c, --command polecenie
-E, --conflict-exit-code liczba
-F, --no-fork
-e, -x, --exclusive
-n, --nb, --nonblock
-o, --close
-s, --shared
-u, --unlock
-w, --wait, --timeout sekundy
--fcntl
Dostępne tylko w wersjach jądra >= 3.15.
--verbose
-h, --help
-V, --version
STATUS ZAKOŃCZENIA¶
Polecenie korzysta z wartości statusu zakończenia z <sysexits.h> we wszystkich przypadkach, z wyjątkiem podania opcji -n lub -w, zgłaszających niepowodzenia w pozyskaniu blokady ze statusem zakończenia podanym opcją -E lub z domyślną wartością 1. Status zakończenia określony przez -E musi mieścić się w zakresie 0 do 255.
Przy korzystaniu z wariantu polecenie, jeśli wykonanie polecenia potomnego powiodło się, statusem zakończenia będzie status polecenia potomnego.
UWAGI¶
flock nie wykrywa zakleszczeń. Więcej szczegółów w podręczniku flock(2).
Niektóre systemy plików (np. NFS i CIFS) mają ograniczoną implementację flock(2) i flock może zawsze zawieść. Więcej szczegółów w podręcznikach flock(2), nfs(5) oraz mount.cifs(8). W zależności od opcji montowania, flock może na nich zawsze zawodzić.
PRZYKŁADY¶
Proszę zwrócić uwagę, że "shell> " w poniższych przykładach jest znakiem zachęty wiersza poleceń.
shell1> flock /tmp -c cat; shell2> flock -w .007 /tmp -c echo; /bin/echo $?
shell1> flock -s /tmp -c cat; shell2> flock -s -w .007 /tmp -c echo; /bin/echo $?
shell> flock -x lokalny-plik-blokady echo 'a b c'
(; flock -n 9 || exit 1; # ... polecenia wykonane pod blokadą ...; ) 9>/var/lock/mojplikblokady
[ "${FLOCKER}" != "$0" ] && exec env FLOCKER="$0" flock -en "$0" "$0" "$@" || :
shell> exec 4<>/var/lock/mojplikblokady; shell> flock -n 4
AUTORZY¶
H. Peter Anvin <hpa@zytor.com>
PRAWA AUTORSKIE¶
Prawa autorskie zastrzeżone © 2003-2006 H. Peter Anvin. Jest to wolne oprogramowanie; warunki rozpowszechniania znajdują się w źródle programu. NIE ma gwarancji, nawet PRZYDATNOŚCI HANDLOWEJ czy PRZYDATNOŚCI DO OKREŚLONEGO CELU.
ZOBACZ TAKŻE¶
ZGŁASZANIE BŁĘDÓW¶
Problemy należy zgłaszać w systemie śledzenia błędów <https://github.com/util-linux/util-linux/issues>.
DOSTĘPNOŚĆ¶
Polecenie flock jest częścią pakietu util-linux, który można pobrać ze strony Archiwum jądra Linux <https://www.kernel.org/pub/linux/utils/util-linux/>.
2025-09-24 | util-linux 2.41.2 |