Pojmenovaná roura
Pojmenovaná roura rozšiřuje v informatice tradiční koncept roury v unixových systémech. Je jednou z metod meziprocesové komunikace (IPC), která funguje jako fronta FIFO. Je využívána pro komunikaci mezi nepříbuznými procesy a je trvalá, což znamená že ji uživatel nejprve vytvoří (jako speciální soubor), procesy se k ní následně připojí a po ukončení používání je možné ji odstranit. Stejný koncept existuje i v systému Microsoft Windows, avšak způsob jeho použití se podstatně liší.
Alternativou k pojmenované rouře je anonymní roura („nepojmenovaná“), kterou lze vytvořit jen mezi příbuznými procesy a zaniká automaticky v okamžiku jejich ukončení. Pokročilejší metodou IPC jsou sokety, které umožňují obousměrnou komunikaci.
Použití
Pojmenovanou rouru je třeba před použitím vytvořit pomocí příkazu (nebo stejnojmenné funkce) mkfifo nebo mknod. S rourou pak pracují dva nezávislé procesy: jeden program do roury zapisuje a druhý z ní čte.
Například můžeme vytvořit rouru a nastavit gzip, aby komprimoval všechno, co se mu dostane na vstup z roury:
mkfifo moje_roura gzip -9 -c < moje_roura > out.gz
Z dalšího shellu může nezávisle poslat data ke komprimaci:
cat soubor > moje_roura
Pomocí pojmenované roury se provádí například komunikace mezi dvěma procesy s různými oprávněními. Přes webovou stránku obsluhovanou PHP nebo CGI skriptem zapisuje uživatel do roury požadavek na změnu chování trvale běžícího (démona) programu Nagios.
Související články
- Roura (Unix) — anonymní (nepojmenovaná) roura mezi příbuznými procesy
- Soket — pokročilejší IPC s možností obousměrné komunikace i mezi procesy na různých počítačích