PIPESZ(1) | Polecenia użytkownika | PIPESZ(1) |
NAZWA
pipesz - ustawia lub sprawdza rozmiary buforów potoku i FIFO
SKŁADNIA
pipesz [opcje] [--set size] [--] [polecenie [argument] ...]
pipesz [opcje] --get
OPIS
Potoki i FIFO utrzymują wewnętrzny bufor używany do transferu danych pomiędzy końcem do odczytu i końcem do zapisu. W niektórych przypadkach domyślny rozmiar wewnętrznego bufora może nie być właściwy. Niniejszy program dostarcza metody do ustawiania i sprawdzania rozmiaru opisywanych buforów.
Operacja --set ustawia rozmiary buforów potoku. Jeśli poda się tę opcję, konieczne jest również określenie argumentu rozmiar. W innym przypadku jest dorozumiany; rozmiar jest wówczas odczytywany z /proc/sys/fs/pipe-max-size. Jądro może zmodyfikować rozmiar zgodnie z opisem w podręczniku fcntl(2). Aby sprawdzić faktycznie ustawione rozmiary bufora, proszę skorzystać z opcji --verbose. Jeśli nie poda się --file ani --fd, --set działa na standardowym wyjściu.
Operacja --set pozwala na ustawienie opcjonalnego polecenia do wykonania po ustawieniu rozmiarów buforów potoku. Polecenie to jest wykonywane już na zmodyfikowanych potokach.
Operacja --get wypisuje dane w formacie tabelarycznym. Pierwsza kolumna jest nazwą potoku przekazaną do pipesz. Deskryptory plików są nazywane jako "fd N". Druga kolumna jest rozmiarem wewnętrznego bufora potoku w bajtach. Trzecia kolumna jest liczbą nieodczytanych obecnie bajtów w potoku. Kolumny są rozdzielone znakiem tabulacji("\t", ASCII 09h). Jeśli poda się --verbose, wypisany zostanie również nagłówek z opisem. Jeśli nie poda się --file ani --fd, --get działa na standardowym wejściu.
O ile nie poda się opcji --check, pipesz nie wychodzi po napotkaniu błędu przy modyfikacji pliku lub deskryptora pliku. Dzięki temu można korzystać z pipesz liberalnie i bez obawy o zaburzanie działania potoków, gdyby typy określonych plików uległy później zmianie. Opcja --quiet dodatkowo wyłącza wyświetlanie ostrzeżeń w takim przypadku.
Jądro narzuca limity wielkości przestrzeni na bufory potoków, jaką mogą stosować procesy nieuprzywilejowane, zob. jednak USTERKI poniżej. Jądro odmówi również zmniejszenia bufora potoku, gdyby spowodowało to utratę zbuforowanych danych. Więcej szczegółów w podręczniku pipe(7).
pipesz obsługuje łączenie wielu krótkich opcji, w zwykłym stylu getopt(3). Pierwszy argument niebędący opcją jest interpretowany jako polecenie. Jeśli nazwa polecenia może rozpoczynać się znakiem "-", proszę oddzielić ją znakami "--" od argumentów pipesz. W skryptach powłoki, dobrą praktyką jest korzystanie z '--' przy interpretacji parametrów. Sam pipesz nie odczytuje ze standardowego wejścia i nie zapisuje na standardowe wyjście, chyba że podano opcje --get, --help lub --version.
OPCJE
-g, --get
-s, --set rozmiar
-f, --file ścieżka
-n, --fd deskryptor-pliku
-i, --stdin
-o, --stdout
-e, --stderr
-c, --check
-q, --quiet
-v, --verbose
-h, --help
-V, --version
PRZYKŁADY
pipesz dd if=plik bs=1M | ...
pipesz -s1M -cf /run/moja-usługa.fifo
echo witaj | pipesz -g
find /proc/PID/fd -exec pipesz -gqf '{}' ';'
UWAGI
Linux obsługuje dostosowywanie rozmiarów buforów potoków od jądra 2.6.35. W tym wydaniu wprowadzono również /proc/sys/fs/pipe-max-size.
Niniejszy program do ustawiania rozmiarów buforów potoków korzysta z F_GETPIPE_SZ/F_SETPIPE_SZ fcntl(2).
Program korzysta z FIONREAD ioctl(2) do zgłaszania ilości nieodczytanych danych w potokach. Jeśli z jakiegoś powodu się to nie powiedzie, rozmiar nieodczytanych danych jest zgłaszany jako 0.
USTERKI
Przed Linuksem 4.9, pewne błędy wpływały na stosowanie pewnych ograniczeń zasobów przy ustawianiu rozmiarów buforów potoków. Więcej szczegółów w podręczniku pipe(7).
AUTORZY
Nathan Sharp <nwsharp@live.com>
ZOBACZ TAKŻE
ZGŁASZANIE BŁĘDÓW
Problemy należy zgłaszać w systemie śledzenia błędów https://github.com/util-linux/util-linux/issues.
DOSTĘPNOŚĆ
Polecenie pipesz jest częścią pakietu util-linux, który można pobrać ze strony Archiwum jądra Linux https://www.kernel.org/pub/linux/utils/util-linux/.
2025-03-29 | util-linux 2.41 |