Provided by: manpages-de_1.11-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] Zahl

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 Zahl deren Dateideskriptors. In den nachfolgenden
       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.

       -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 diese Hilfe 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 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.

RÜCKGABEWERT

       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

COPYRIGHT

       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. heruntergeladen
       werden kann.

ÜBERSETZUNG

       Die deutsche Übersetzung dieser Handbuchseite wurde von 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>.

util-linux                                          Juli 2014                                           FLOCK(1)