Provided by: manpages-de_2.5-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 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  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.

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>,
       Dr. Tobias Quathamer <toddy@debian.org> und Helge Kreutzmann <debian@helgefjell.de> 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)