-
roury neukládají data na disk. /bin/echo foo | grep bar nevytváří žádné soubory. zkuste
strace -f sh -c '/bin/echo foo | grep bar'zobrazit všechna systémová volání provedená shellem při spuštění potrubí.echoje vestavěný shell, takže jsem navrhl/bin/echoaby shell běžel jako spustitelný soubor. -
/tmpnemusí být na disku. Může být připojen na tmpfs (tj. zálohovaný virtuální pamětí). Všimněte si, že restartování vyprázdní/tmpv tom případě použijte/var/tmpna cokoli, co tu chcete nechat.
Pokud to, co děláte, je vkládání dat do souboru, pak to nepoužívá roura. Pokud je soubor fifo, nikoli běžný soubor, pak je to pouze pojmenované setkání a neobsahuje data. Chcete-li to zjistit, použijte ls -l.
A povšimněte si, že pokud doufáte, že uživatelům zabráníte v tom, aby viděli, co prochází potrubím v procesech, které vlastní, jste do značné míry SOL, protože strace může kontrolovat vše, co proces dělá, co interaguje s čímkoli mimo proces, kromě čtení/zápisu mmapované sdílené paměti. ltrace je ještě invazivnější. Pokud váš program poběží na systémech, kde má místní uživatel root, nemůžete je vůbec zastavit. Na Unixu může root dělat cokoliv a má pro tento účel výkonné nástroje.