.\" -*- coding: UTF-8 -*- '\" t .\" Title: flock .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.15 .\" Date: 2022-05-11 .\" Manual: User Commands .\" Source: util-linux 2.38.1 .\" Language: English .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH FLOCK 1 "11. Mai 2022" "util\-linux 2.38.1" "Dienstprogramme für Benutzer" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .ss \n[.ss] 0 .nh .ad l .de URL \fI\\$2\fP <\\$1>\\$3 .. .als MTO URL .if \n[.g] \{\ . mso www.tmac . am URL . ad l . . . am MTO . ad l . . . LINKSTYLE blue R < > .\} .SH BEZEICHNUNG flock \- Sperrungen in Shell\-Skripten verwalten .SH ÜBERSICHT .sp \fBflock\fP [Optionen] \fIDatei\fP|\fIVerzeichnis\fP \fIBefehl\fP [\fIArgumente\fP] .sp \fBflock\fP [Optionen] \fIDatei\fP|\fIVerzeichnis\fP \fB\-c\fP \fIBefehl\fP .sp \fBflock\fP [Optionen] \fINummer\fP .SH BESCHREIBUNG .sp Das Dienstprogramm \fBflock\fP(2) verwaltet Sperrungen über Shell\-Skripte oder die Befehlszeile. .sp Die erste und die zweite der oben genannten Formen führen die Sperrung im Rahmen der Ausführung eines \fIBefehls\fP aus, ähnlich wie \fBsu\fP(1) oder \fBnewgrp\fP(1) dies tun. Sie sperren eine angegebene \fIDatei\fP oder ein \fIVerzeichnis\fP, welche angelegt werden (ausreichende Berechtigungen vorausgesetzt), wenn sie noch nicht existieren. In der Voreinstellung wartet \fBflock\fP, bis die Sperrung verfügbar wird, wenn diese nicht unmittelbar erreicht werden kann. .sp Die dritte Form verwendet eine offene Datei anhand der Dateideskriptors\-\fINummer\fP. In den unten stehenden Beispielen sehen Sie, wie Sie dies verwenden können. .SH OPTIONEN .sp \fB\-c\fP, \fB\-\-command\fP \fIBefehl\fP .RS 4 übergibt einen einzelnen \fIBefehl\fP ohne Argumente an die Shell mit \fB\-c\fP. .RE .sp \fB\-E\fP, \fB\-\-conflict\-exit\-code\fP \fIZahl\fP .RS 4 ist der Exit\-Status, wenn die Option \fB\-n\fP verwendet wird und die kollidierende Sperrung besteht, oder wenn die Option \fB\-w\fP verwendet und die Zeit überschritten wird. Der Vorgabewert ist \fB1\fP. Die \fIZahl\fP muss im Bereich von 0 bis 255 liegen (einschließlich dieser Werte). .RE .sp \fB\-F\fP, \fB\-\-no\-fork\fP .RS 4 forkt nicht vor der Ausführung von \fIBefehl\fP. Bei der Ausführung wird der Flock\-Prozess durch \fIBefehl\fP ersetzt, der dann die Sperre hält. Diese Option ist zu \fB\-\-close\fP inkompatibel, da andernfalls nichts zum Halten der Sperre übrigbleiben würde. .RE .sp \fB\-e\fP, \fB\-x\fP, \fB\-\-exclusive\fP .RS 4 richtet eine exklusive Sperrung ein, gelegentlich auch Schreibsperre genannt. Dies ist die Voreinstellung. .RE .sp \fB\-n\fP, \fB\-\-nb\fP, \fB\-\-nonblock\fP .RS 4 schlägt fehl, anstatt zu warten, wenn eine Sperre nicht unmittelbar eingerichtet werden kann. Siehe die Option \fB\-E\fP für den verwendeten Exit\-Status. .RE .sp \fB\-o\fP, \fB\-\-close\fP .RS 4 schließt den Dateideskriptor, für den die Sperrung besteht, bevor der \fIBefehl\fP ausgeführt wird. Dies ist sinnvoll, wenn der \fIBefehl\fP einen Kindprozess erzeugt, der nicht ebenfalls die Sperrung erhalten soll. .RE .sp \fB\-s\fP, \fB\-\-shared\fP .RS 4 richtet eine gemeinsame Sperre ein, gelegentlich auch Lesesperre genannt. .RE .sp \fB\-u\fP, \fB\-\-unlock\fP .RS 4 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. .RE .sp \fB\-w\fP, \fB\-\-wait\fP, \fB\-\-timeout\fP \fISekunden\fP .RS 4 verursacht einen Fehlschlag, wenn die Sperrung nicht innerhalb der angegebenen Anzahl \fISekunden\fP eingerichtet werden kann. Dezimale Nachkommastellen sind zulässig. Siehe die Option \fB\-E\fP für den verwendeten Exit\-Status. Wenn für \fISekunden\fP Null angegeben ist, wird dies als \fB\-\-nonblock\fP interpretiert. .RE .sp \fB\-\-verbose\fP .RS 4 meldet, wie lange es bis zur tatsächlichen Sperrung dauerte oder warum die Sperrung nicht erreicht werden konnte. .RE .sp \fB\-h\fP, \fB\-\-help\fP .RS 4 zeigt einen Hilfetext an und beendet das Programm. .RE .sp \fB\-V\fP, \fB\-\-version\fP .RS 4 zeigt die Versionsnummer an und beendet das Programm. .RE .SH EXIT\-STATUS .sp Der Befehl verwendet generell die Exit\-Status\-Werte aus , außer wenn Sie die Optionen \fB\-n\fP oder \fB\-w\fP verwenden, welche beim Einrichten der Sperre einen Fehler melden, mit einem durch die Option \fB\-E\fP festgelegten Exit\-Status, oder 1 als Voreinstellung. Der durch \fB\-E\fP angegebene Exit\-Status muss im Bereich von 0 bis 255 liegen (einschließlich dieser Werte). .sp Wenn Sie die \fIBefehl\fP\-Variante verwenden und die Ausführung des Kindprozesses funktioniert, dann ist der Exit\-Status jener des Kindprozess\-Befehls. .SH ANMERKUNGEN .sp \fBflock\fP erkennt keine Deadlocks. Siehe \fBflock\fP(2) für Details. .sp Einige Dateisysteme (zum Beispiel NFS und CIFS) haben \fBflock\fP(2) nur unzureichend implementiert und \fBflock\fP kann immer fehlschlagen. Für Details, siehe \fBflock\fP(2), \fBnfs\fP(5) und \fBmount.cifs\fP(8). Abhängig von den Einhängeoptionen kann \fBflock\fP dort immer fehlschlagen. .SH BEISPIELE .sp Beachten Sie, dass »shell> « in Beispielen eine Eingabeaufforderung darstellt. .sp shell1> flock /tmp \-c cat; shell2> flock \-w .007 /tmp \-c echo; /bin/echo $? .RS 4 richtet eine exklusive Sperrung des Verzeichnisses \fI/tmp\fP ein, woraufhin der zweite Befehl scheitert. .RE .sp shell1> flock \-s /tmp \-c cat; shell2> flock \-s \-w .007 /tmp \-c echo; /bin/echo $? .RS 4 richtet eine gemeinsame Sperre des Verzeichnisses \fI/tmp\fP ein, woraufhin der zweite Befehl nicht scheitert. Beachten Sie, dass die Einrichtung einer exklusiven Sperre mit dem zweiten Befehl scheitern wird. .RE .sp shell> flock \-x lokale\-Sperrdatei echo \(aqa b c\(aq .RS 4 holt die exklusive »lokale\-Sperrdatei«, bevor »echo« mit »a b c« ausgeführt wird. .RE .sp (; flock \-n 9 || exit 1; # … unter der Sperrung ausgeführte Befehle …; ) 9>/var/lock/mylockfile .RS 4 Die Form ist praktisch in Shell\-Skripten. Der Modus zum Öffnen der Datei spielt für \fBflock\fP keine Rolle. Die Verwendung von \fI>\fP oder \fI>>\fP ermöglicht das Anlegen der Sperrdatei, falls sie noch nicht existiert, wofür allerdings Schreibrechte erforderlich sind. Mit \fI<\fP wird vorausgesetzt, dass die Datei bereits existiert und nur Lesezugriffsrechte nötig sind. .RE .sp [ "${FLOCKER}" != "$0" ] && exec env FLOCKER="$0" flock \-en "$0" "$0" "$@" || : .RS 4 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 \fB$FLOCKER\fP für das auszuführende Shell\-Skript nicht gesetzt ist, dann führen Sie \fBflock\fP 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 \fBFLOCKER\fP auf den richtigen Wert, so dass es nicht erneut läuft. .RE .sp shell> exec 4<>/var/lock/meine_Sperrdatei; shell> flock \-n 4 .RS 4 Diese Form ist für die Sperrung einer Datei praktisch, ohne einen Unterprozess zu starten. Die Shell öffnet die Sperrdatei zum Lesen und Schreiben als Dateideskriptor 4; dann wird \fBflock\fP zum Sperren des Deskriptors verwendet. .RE .SH AUTOREN .sp .MTO hpa\(atzytor.com "H. Peter Anvin" "" .SH COPYRIGHT .sp 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. .SH "SIEHE AUCH" .sp \fBflock\fP(2) .SH "FEHLER MELDEN" .sp Verwenden Sie zum Melden von Fehlern das Fehlererfassungssystem auf .URL https://github.com/util\-linux/util\-linux/issues "" . .SH VERFÜGBARKEIT .sp Der Befehl \fBflock\fP ist Teil des Pakets util\-linux, welches heruntergeladen werden kann von: .URL https://www.kernel.org/pub/linux/utils/util\-linux/ "Linux Kernel Archive" . .PP .SH ÜBERSETZUNG Die deutsche Übersetzung dieser Handbuchseite wurde von Dr. Tobias Quathamer , Helge Kreutzmann und Mario Blättermann erstellt. .PP Diese Übersetzung ist Freie Dokumentation; lesen Sie die .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen. .PP Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die .MT debian-l10n-german@lists.debian.org Mailingliste der Übersetzer .ME .