PIPESZ(1) Dienstprogramme fur Benutzer PIPESZ(1) BEZEICHNUNG pipesz - Pipe- und FIFO-Puffergrossen festlegen oder untersuchen UBERSICHT pipesz [Optionen] [--set Grosse] [--] [Befehl [Argument ]] pipesz [Optionen] --get BESCHREIBUNG Pipes und FIFOs verwalten einen internen Puffer, der zum Ubertragen von Daten zwischen der Leseseite und der Schreibseite verwendet wird. In einigen Fallen kann die Standardgrosse dieses internen Puffers den Erfordernissen nicht entsprechen. Dieses Programm bietet Moglichkeiten, die Grosse dieser Puffer zu setzen und zu untersuchen. Die Aktion --set legt die Pipe-Puffergrossen fest. Falls angegeben, muss sie mit einer expliziten Grosse angegeben werden. Andernfalls wird sie implizit ubernommen und die Grosse wird aus /proc/sys/fs/pipe-max-size gelesen. Der Kernel kann die Grosse wie in fcntl(2) beschrieben anpassen. Um die tatsachlich einzustellenden Puffergrossen anzuzeigen, verwenden Sie die Option --verbose. Wenn weder --file noch --fd angegeben sind, wirkt --set auf die Standardausgabe. Die Option --set ermoglicht die Ubergabe eines optionalen Befehls zur Ausfuhrung nach dem Festlegen der Pipe-Puffergrossen. Dieser Befehl wird auf die angepassten Pipes angewendet. Die Operation --get gibt Daten in tabellarischer Form aus. Die erste Spalte enthalt den Namen der Pipe, wie sie an pipesz ubergeben wurde. Dateideskriptoren werden als >>fd N<< bezeichnet. Die zweite Spalte gibt die Grosse des internen Puffers der Pipe in Bytes an. Die dritte Spalte enthalt die Anzahl der aktuell in der Pipe ungelesenen Bytes. Die Spalten sind durch Tabulatoren ('\t', ASCII 09h) getrennt. Bei Angabe von --verbose wird zusatzlich 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 Ausfuhrung von Pipelines unterbrochen werden muss, falls sich der Typ bestimmter Dateien spater andert. Um Storungen zu minimieren, verhindert die Option --quiet in diesen Fallen die Ausgabe von Warnungen. Der Kernel begrenzt den Pipe-Pufferspeicher, den nicht privilegierte Prozesse nutzen konnen (siehe FEHLER weiter unten). Der Kernel lehnt ausserdem die Verkleinerung eines Pipe-Pufferspeichers ab, wenn dies zu einem Verlust gepufferter Daten fuhren wurde. Weitere Informationen finden Sie unter pipe(7). pipesz unterstutzt die Angabe mehrerer kurzer Optionen nacheinander, wie es bei getopt(3) ublich ist. Das erste Argument ohne Option wird als Befehl interpretiert. Falls der Befehl mit >>-<< beginnen konnte, verwenden Sie >>--<<, um es von den Argumenten fur 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 schreibt die Grosse der Pipe-Puffer in die Standardausgabe und beendet das Programm. Falls weder --file noch --fd angegeben sind, wird versucht, aus der Standardeingabe zu lesen. die Angabe dieser Option zusammen mit --set verursacht einen Fehler. -s, --set Grosse legt die Grosse der Pipe-Puffer in Bytes fest. Diese Option kann mit den Suffixen K, M, G, KiB, MiB oder GiB versehen werden, um Vielfache von 1024 anzugeben.Bruchwerte werden in diesem Fall unterstutzt. Weitere Suffixe werden unterstutzt, sind aber wahrscheinlich nicht sinnvoll. Wird diese Option nicht angegeben, wird ein Standardwert verwendet, wie oben beschrieben. Wird diese Option mehrfach angegeben, wird eine Warnung ausgegeben und nur die zuletzt angegebene Grosse verwendet. Als besonderes Verhalten wird die Standardausgabe angepasst, wenn weder --file noch --fd angegeben sind. Die Angabe dieser Option in Kombination mit --get ist ein Fehler. -f, --file Pfad setzt die Puffergrosse der Pipe oder FIFO auf Pfad, relativ zum aktuellen Arbeitsverzeichnis. Sie konnen fur verschiedene Dateien diese Option mehrfach angeben, auch in Kombination mit --file. Im Allgemeinen wird diese Option mit FIFOs verwendet, ist aber auch mit anonymen Pipes verwendbar, wie jenen in /proc/PID/fd. Anderungen der Puffergrosse von FIFOs sind nach einem Systemneustart nicht mehr wirksam. -n, --fd Nummer setzt die an pipesz ubergebene Puffergrosse der Pipe oder FIFO auf die angegebene Nummer des Dateideskriptors. Sie konnen fur verschiedene Dateideskriptoren diese Option mehrfach angeben, auch in Kombination mit --file. Fur haufig vorkommende Falle werden kurzel angeboten: fd 0 (Standardeingabe, stdin), fd 1 (Standardausgabe, stdout) und fd 2 (Standardfehlerausgabe, stderr). Dies sollte in den meisten Fallen genugen. -i, --stdin Kurzel fur --fd 0. -o, --stdout Kurzel fur --fd 1. -e, --stderr Kurzel fur --fd 2. -c, --check beendet das Programm, ohne den Befehl auszufuhren, falls beim Manipulieren einer Datei oder eines Dateideskriptors ein Fehler auftrat. Falls diese Option nicht angegeben ist, wird standardmassig eine Warnung in die Standardfehlerausgabe geschrieben und die Programmausfuhrung fortgesetzt. -q, --quiet schreibt keine nicht-schwerwiegenden Diagnosemeldungen in die Standardfehlerausgabe. Die normale Ausgabe von --get, --verbose, --help oder --version wird hiervon nicht beeinflusst. -v, --verbose veranlasst pipesz, eine beschreibende Uberschrift uber der Tabelle auszugeben, wenn dies mit --get angegeben wird. Wenn Sie es ansonsten angeben, schreibt pipesz die vom Kernel festgelegten tatsachlichen Puffergrossen in die Standardfehlerausgabe. -h, --help zeigt einen Hilfetext an und beendet das Programm. -V, --version zeigt Versionsinformationen an und beendet das Programm. BEISPIELE pipesz dd if=Datei bs=1M | ... fuhrt dd(1) mit einer erweiterten Standard-Ausgabepipe aus, was es ermoglicht, Kontextschalter beim Pipen um grosse Blocke zu vermeiden. pipesz -s1M -cf /run/mein-dienst.fifo Setzt die Pipe-Puffergrosse einer Dienst-FIFO auf 1.048.576 Byte. Falls die Puffergrosse nicht gesetzt werden kann, wird pipesz mit einem Fehler beendet. echo hello | pipesz -g gibt die Grosse der Pipe aus, die von der Shell verwendet wird, um Eingaben an pipesz zu ubergeben. Da pipesz nicht aus der Standardeingabe liest, konnen auch 6 ungelesene Bytes in die Pipe gelangen, abhangig von relativen Timings. find /proc/PID/fd -exec pipesz -gqf '{}' ';' gibt die Grosse und Anzahl ungelesener Bytes aller Pipes aus, die von PID verwendet werden. Falls einige Pipes routinemassig voll sind, kann pipesz einen Flaschenhals bei der Verarbeitung mildern. ANMERKUNGEN Linux unterstutzt die Grossenanpassung von Pipe-Puffern seit Kernel 2.6.35. In dieser Version wurde ausserdem /proc/sys/fs/pipe-max-size eingefuhrt. Dieses Programm verwendet F_GETPIPE_SZ/F_SETPIPE_SZ aus fcntl(2), um die Pipe-Puffergrossen 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 fehlschlagt, wird die Menge der ungelesenen Daten als 0 gemeldet. FEHLER Vor Linux 4.9 beeintrachtigten einige Fehler das Erzwingen bestimmter Ressourcenbeschrankungen beim Setzen von Pipe-Puffergrossen. In pipe(7) finden Sie Details hierzu. AUTOREN Nathan Sharp SIEHE AUCH pipe(7) FEHLER MELDEN Nutzen Sie zum Melden von Fehlern das Fehlererfassungssystem . VERFUGBARKEIT Der Befehl pipesz ist Teil des Pakets util-linux, welches aus dem Linux-Kernel-Archiv heruntergeladen werden kann. util-linux 2.42.3 2026-09-02 PIPESZ(1)