table of contents
| PIPESZ(1) | Dienstprogramme für Benutzer | PIPESZ(1) |
BEZEICHNUNG¶
pipesz - Pipe- und FIFO-Puffergrößen festlegen oder untersuchen
ÜBERSICHT¶
pipesz [Optionen] [--set Größe] [--] [Befehl [Argument] …]
pipesz [Optionen] --get
BESCHREIBUNG¶
Pipes und FIFOs verwalten einen internen Puffer, der zum Übertragen von Daten zwischen der Leseseite und der Schreibseite verwendet wird. In einigen Fällen kann die Standardgröße dieses internen Puffers den Erfordernissen nicht entsprechen. Dieses Programm bietet Möglichkeiten, die Größe dieser Puffer zu setzen und zu untersuchen.
Die Aktion --set legt die Pipe-Puffergrößen fest. Falls angegeben, muss sie mit einer expliziten Größe angegeben werden. Andernfalls wird sie implizit übernommen und die Größe wird aus /proc/sys/fs/pipe-max-size gelesen. Der Kernel kann die Größe wie in fcntl(2) beschrieben anpassen. Um die tatsächlich eingestellten Puffergrößen anzuzeigen, verwenden Sie die Option --verbose. Wenn weder --file noch --fd angegeben sind, wirkt --set auf die Standardausgabe.
Die Option --set ermöglicht die Übergabe eines optionalen Befehls zur Ausführung nach dem Festlegen der Pipe-Puffergrößen. Dieser Befehl wird auf die angepassten Pipes angewendet.
Die Operation --get gibt Daten in tabellarischer Form aus. Die erste Spalte enthält den Namen der Pipe, wie sie an pipesz übergeben wurde. Dateideskriptoren werden als »fd N« bezeichnet. Die zweite Spalte gibt die Größe des internen Puffers der Pipe in Bytes an. Die dritte Spalte enthält die Anzahl der aktuell in der Pipe ungelesenen Bytes. Die Spalten sind durch Tabulatoren ('\t', ASCII 09h) getrennt. Bei Angabe von --verbose wird zusätzlich ein beschreibender Header ausgegeben. Sind weder --file noch --fd angegeben, verwendet --get die Standardeingabe.
Sofern die Option --check nicht angegeben ist, wird pipesz nicht beendet, wenn bei der Bearbeitung einer Datei oder eines Dateideskriptors ein Fehler auftritt. Dadurch kann pipesz generisch verwendet werden, ohne dass die Ausführung von Pipelines unterbrochen werden muss, falls sich der Typ bestimmter Dateien später ändert. Um Störungen zu minimieren, verhindert die Option --quiet in diesen Fällen die Ausgabe von Warnungen.
Der Kernel begrenzt den Pipe-Pufferspeicher, den nicht privilegierte Prozesse nutzen können (siehe FEHLER weiter unten). Der Kernel lehnt außerdem die Verkleinerung eines Pipe-Pufferspeichers ab, wenn dies zu einem Verlust gepufferter Daten führen würde. Weitere Informationen finden Sie unter pipe(7).
pipesz unterstützt die Angabe mehrerer kurzer Optionen nacheinander, wie es bei getopt(3) üblich ist. Das erste Argument ohne Option wird als Befehl interpretiert. Falls der Befehl mit »-« beginnen könnte, verwenden Sie »--«, um es von den Argumenten für pipesz zu trennen. In Shell-Skripten empfiehlt sich die Verwendung von »--«, wenn Parameter erweitert werden sollen. pipesz selbst liest nicht aus der Standardeingabe und schreibt nicht in die Standardausgabe, es sei denn, --get, --help oder --version sind angegeben.
OPTIONEN¶
-g, --get
-s, --set Größe
-f, --file Pfad
-n, --fd Dateideskriptor
-i, --stdin
-o, --stdout
-e, --stderr
-c, --check
-q, --quiet
-v, --verbose
-h, --help
-V, --version
BEISPIELE¶
pipesz dd if=Datei bs=1M | ...
pipesz -s1M -cf /run/mein-dienst.fifo
echo hello | pipesz -g
find /proc/PID/fd -exec pipesz -gqf '{}' ';'
ANMERKUNGEN¶
Linux unterstützt die Größenanpassung von Pipe-Puffern seit Kernel 2.6.35. In dieser Version wurde außerdem /proc/sys/fs/pipe-max-size eingeführt.
Dieses Programm verwendet F_GETPIPE_SZ/F_SETPIPE_SZ aus fcntl(2), um die Pipe-Puffergrößen zu ermitteln und zu setzen.
Dieses Programm verwendet FIONREAD aus ioctl(2), um die Menge der ungelesenen Daten in Pipes zu ermitteln. Falls dies aus irgendeinem Grund fehlschlägt, wird die Menge der ungelesenen Daten als 0 gemeldet.
FEHLER¶
Vor Linux 4.9 beeinträchtigten einige Fehler das Erzwingen bestimmter Ressourcenbeschränkungen beim Setzen von Pipe-Puffergrößen. In pipe(7) finden Sie Details hierzu.
AUTOREN¶
Nathan Sharp <nwsharp@live.com>
SIEHE AUCH¶
FEHLER MELDEN¶
Nutzen Sie zum Melden von Fehlern das Fehlererfassungssystem <https://github.com/util-linux/util-linux/issues>.
VERFÜGBARKEIT¶
Der Befehl pipesz ist Teil des Pakets util-linux, welches aus dem Linux-Kernel-Archiv <https://www.kernel.org/pub/linux/utils/util-linux/> heruntergeladen werden kann.
| 2025-10-10 | util-linux 2.41.2 |