focal (1) flock.1.gz

Provided by: manpages-de_2.16-1_all bug

BEZEICHNUNG

       flock - Sperrungen in Shell-Skripten verwalten

ÜBERSICHT

       flock [Optionen] Datei|Verzeichnis Befehl [Argumente]
       flock [Optionen] Datei|Verzeichnis -c Befehl
       flock [Optionen] Nummer

BESCHREIBUNG

       Das Dienstprogramm flock(2) verwaltet Sperrungen über Shell-Skripte oder die Befehlszeile.

       Die  erste  und  die  zweite der oben genannten Formen führen die Sperrung im Rahmen der Ausführung eines
       Befehls aus, ähnlich wie su(1) oder newgrp(1) dies tun.  Sie  sperren  eine  angegebene  Datei  oder  ein
       Verzeichnis,  welche  angelegt  werden  (ausreichende  Berechtigungen vorausgesetzt), wenn sie noch nicht
       existieren. In der Voreinstellung wartet flock,  bis  die  Sperrung  verfügbar  wird,  wenn  diese  nicht
       unmittelbar erreicht werden kann.

       Die  dritte  Form  verwendet eine offene Datei anhand der Dateideskriptors-Nummer. In den unten stehenden
       Beispielen sehen Sie, wie Sie dies verwenden können.

OPTIONEN

       -c, --command Befehl
              übergibt einen einzelnen Befehl ohne Argumente an die Shell mit -c.

       -E, --conflict-exit-code Zahl
              ist der Exit-Code, wenn die Option -n verwendet wird und die kollidierende Sperrung besteht,  oder
              wenn die Option -w verwendet und die Zeit überschritten wird. Der Vorgabewert ist 1.

       -F, --no-fork
              forkt  nicht vor der Ausführung von Befehl. Bei der Ausführung wird der Flock-Prozess durch Befehl
              ersetzt, der dann die Sperre hält. Diese Option ist zu --close inkompatibel, da andernfalls nichts
              zum Halten der Sperre übrigbleiben würde.

       -e, -x, --exclusive
              richtet  eine  exklusive  Sperrung  ein,  gelegentlich  auch  Schreibsperre  genannt. Dies ist die
              Voreinstellung.

       -n, --nb, --nonblock
              schlägt fehl, anstatt zu warten, wenn eine Sperre  nicht  unmittelbar  eingerichtet  werden  kann.
              Siehe die Option -E für den verwendeten Exit-Code.

       -o, --close
              schließt den Dateideskriptor, für den die Sperrung besteht, bevor der Befehl ausgeführt wird. Dies
              ist sinnvoll, wenn der Befehl einen Kindprozess erzeugt, der nicht ebenfalls die Sperrung erhalten
              soll.

       -s, --shared
              richtet eine gemeinsame Sperre ein, gelegentlich auch Lesesperre genannt.

       -u, --unlock
              löst eine Sperrung. Dies ist normalerweise nicht erforderlich, da eine Sperrung automatisch gelöst
              wird, wenn die Datei geschlossen wird. Dennoch kann  es  in  speziellen  Fällen  nötig  sein,  zum
              Beispiel  wenn  die  eingeschlossene  Befehlsgruppe einen Hintergrundprozess geforkt haben könnte,
              welcher die Sperrung nicht übernehmen soll.

       -w, --wait, --timeout Sekunden
              verursacht einen Fehlschlag, wenn die Sperrung nicht innerhalb  der  angegebenen  Anzahl  Sekunden
              eingerichtet  werden  kann.  Dezimale  Nachkommastellen sind zulässig. Siehe die Option -E für den
              verwendeten  Exit-Code.  Wenn  für  Sekunden  Null  angegeben  ist,  wird  dies   als   --nonblock
              interpretiert.

       --verbose
              meldet, wie lange es bis zur tatsächlichen Sperrung dauerte oder warum die Sperrung nicht erreicht
              werden konnte.

       -V, --version
              zeigt Versionsinformationen an und beendet das Programm.

       -h, --help
              zeigt einen Hilfetext an und beendet das Programm.

BEISPIELE

       shell1> flock /tmp -c cat
       shell2> flock -w .007 /tmp -c echo; /bin/echo $?
              richtet eine  exklusive  Sperrung  des  Verzeichnisses  /tmp  ein,  woraufhin  der  zweite  Befehl
              scheitert.

       shell1> flock -s /tmp -c cat
       shell2> flock -s -w .007 /tmp -c echo; /bin/echo $?
              richtet  eine  gemeinsame  Sperre  des  Verzeichnisses /tmp ein, woraufhin der zweite Befehl nicht
              scheitert. Beachten Sie, dass die Einrichtung einer  exklusiven  Sperre  mit  dem  zweiten  Befehl
              scheitern wird.

       shell> flock -x lokale-Sperrdatei echo 'a b c'
              holt die exklusive »lokale-Sperrdatei«, bevor »echo« mit »a b c« ausgeführt wird.

       (
         flock -n 9 || exit 1
         # … unter der Sperrung ausgeführte Befehle …
       ) 9>/var/lock/mylockfile
              Die  Form  ist  praktisch in Shell-Skripten. Der Modus zum Öffnen der Datei spielt für flock keine
              Rolle. Die Verwendung von > oder >> ermöglicht das Anlegen der Sperrdatei, falls  sie  noch  nicht
              existiert,  wofür  allerdings  Schreibrechte erforderlich sind. Mit < wird vorausgesetzt, dass die
              Datei bereits existiert und nur Lesezugriffsrechte nötig sind.

       [ "${FLOCKER}" != "$0" ] && exec env FLOCKER="$0" flock -en "$0" "$0" "$@" || :
              Dies ist ein nützlicher Baustein-Code für Shell-Skripte. Setzen  Sie  es  an  den  Anfang  des  zu
              sperrenden  Skripts  und  es  wird  sich  bei  der ersten Ausführung automatisch sperren. Wenn die
              Umgebungsvariable $FLOCKER für das auszuführende Shell-Skript nicht gesetzt ist, dann  führen  Sie
              flock  aus  und  richten  eine  exklusive nicht-blockierende Sperre ein (mit dem Skript selbst als
              Sperrdatei), bevor sie es mit den richtigen Argumenten selbst erneut ausführen. Es setzt auch  die
              Umgebungsvariable FLOCKER auf den richtigen Wert, so dass es nicht erneut läuft.

EXIT-STATUS

       Der  Befehl  verwendet  generell die Rückgabewerte aus sysexits.h, außer wenn Sie die Optionen -n oder -w
       verwenden, welche beim Einrichten der  Sperre  einen  Fehler  melden,  mit  einem  durch  die  Option  -E
       festgelegten Rückgabewert, oder 1 als Voreinstellung.

       Wenn  Sie  die  Befehl-Variante verwenden und die Ausführung des Kindprozesses funktioniert, dann ist der
       Exit-Status jener des Kindprozess-Befehls.

AUTOR

       H. Peter Anvin ⟨hpa@zytor.com
       Copyright © 2003-2006 H. Peter Anvin.
       Dies ist freie Software, in den Quellen  finden  Sie  die  Bedingungen  zur  Weitergabe.  Es  gibt  KEINE
       Garantie, auch nicht für die MARKTREIFE oder die TAUGLICHKEIT FÜR EINEN BESTIMMTEN ZWECK.

SIEHE AUCH

       flock(2)

VERFÜGBARKEIT

       Der  Befehl  flock  ist  Teil  des  Pakets  util-linux,  welches  aus  dem  Linux Kernel-Archiv ⟨https://
       www.kernel.org/pub/linux/utils/util-linux/⟩. heruntergeladen werden kann.

ÜBERSETZUNG

       Die deutsche Übersetzung dieser Handbuchseite wurde von Dr. Tobias  Quathamer  <toddy@debian.org>,  Helge
       Kreutzmann <debian@helgefjell.de> und Mario Blättermann <mario.blaettermann@gmail.com> erstellt.

       Diese  Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer
       bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

       Wenn Sie Fehler in der Übersetzung dieser  Handbuchseite  finden,  schicken  Sie  bitte  eine  E-Mail  an
       <debian-l10n-german@lists.debian.org>.