| PIPESZ(1) | Användarkommandon | PIPESZ(1) |
NAMN
pipesz - ställa in eller undersöka storleken på pipe- och FIFO-buffertar
SYNOPSIS
pipesz [options] [--set size] [--] [command [argument...]]
pipesz [options] --get
BESKRIVNING
Pipes och FIFO:er har en intern buffert som används för att överföra data mellan läsänden och skrivänden. I vissa fall kan standardstorleken på denna interna buffert vara olämplig. Detta program ger möjlighet att ställa in och undersöka storleken på dessa buffertar.
The --set operation sets pipe buffer sizes. If it is specified, it must be specified with an explicit size. Otherwise, it is implied and the size is read from /proc/sys/fs/pipe-max-size. The kernel may adjust size as described in fcntl(2). To see the actual buffer sizes that get set, use the --verbose option. If neither --file nor --fd are specified, --set acts on standard output.
Operationen --set tillåter ett valfritt kommando att utföras efter att rörbuffertstorlekarna har ställts in. Detta kommando körs med de justerade rören.
Operationen --get matar ut data i tabellformat. Den första kolumnen är namnet på den pipe som skickades till pipesz. Filbeskrivare namnges som "fd N". Den andra kolumnen är storleken, i byte, på pipens interna buffert. Den tredje kolumnen är antalet olästa byte som för närvarande finns i pipen. Kolumnerna är åtskilda av tabbar ('\t', ASCII 09h). Om --verbose anges, skickas även en beskrivande rubrik ut. Om varken --file eller --fd anges, använder --get standardinmatningen.
Om inte flaggan --check har angetts avslutas pipesz inte om den stöter på ett fel när den hanterar en fil eller filbeskrivare. Detta gör att pipesz kan användas generiskt utan rädsla för att störa körningen av pipelines om typen av vissa filer senare skulle ändras. För minimal störning förhindrar flaggan --quiet att varningar skickas ut i dessa fall.
Kärnan sätter gränser för hur mycket pipebuffertutrymme processer som inte är privilegierade kan använda, se dock KÄNDA PROBLEM nedan. Kärnan kommer också att vägra att krympa en pipe-buffert om detta skulle orsaka förlust av buffrade data. Se pipe(7) för ytterligare information.
pipesz stöder specificering av flera korta flaggor i följd, på det vanliga getopt(3)-sättet. Det första argumentet som inte är en flagga tolkas som kommando. Om kommando kan börja med '-', använd '--' för att separera det från argumenten till pipesz. I skalskript är det god praxis att använda '--' när parameterexpansion är inblandad. pipesz själv läser inte från standardinmatningen och skriver inte till standardutmatningen om inte --get, --help eller --version anges.
FLAGGOR
-g, --get
-s, --set storlek
-f, --file sökväg
-n, --fd number
-i, --stdin
-o, --stdout
-e, --stderr
-c, --check
-q, --quiet
-v, --verbose
-h, --help
-V, --version
EXEMPEL
pipesz dd if=fil bs=1M | ...
pipesz -s1M -cf /run/my-service.fifo
echo hallå | pipesz -g
find /proc/PID/fd -exec pipesz -gqf '{}' ';'
ANTECKNINGAR
Linux har stöd för att justera storleken på pipe-buffertar sedan kernel 2.6.35. Denna version introducerade även /proc/sys/fs/pipe-max-size.
Detta program använder fcntl(2) F_GETPIPE_SZ/F_SETPIPE_SZ för att hämta och ställa in rörbuffertstorlekar.
Det här programmet använder ioctl(2) FIONREAD för att rapportera mängden olästa data i pipes. Om detta av någon anledning misslyckas rapporteras mängden olästa data som 0.
KÄNDA PROBLEM
Före Linux 4.9 fanns det några fel som påverkade hur vissa resursgränser tillämpades när storleken på pipebuffertar ställdes in. Se pipe(7) för mer information.
UPPHOVSPERSONER
Nathan Sharp <nwsharp@live.com>
SE ÄVEN
FELRAPPORTERING
För felrapporter, använd felhanteraren https://github.com/util-linux/util-linux/issues.
TILLGÄNGLIGHET
Kommandot pipesz ingår i paketet util-linux som kan hämtas från Linux Kernel Archive https://www.kernel.org/pub/linux/utils/util-linux/.
| 2026-05-18 | util-linux 2.42.1 |