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 ⟨hpa@zytor.com

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
       ⟨ftp://ftp.kernel.org/pub/linux/utils/util-linux/⟩. 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>.