Pojmenovaná roura
Pojmenovaná roura (funguje jako fronta FIFO) rozšiřuje tradiční koncept roury v Unixu a unixových systémech. Pojmenovaná roura je jednou z metod meziprocesové komunikace (IPC), která se využívá u nepříbuzných procesů. Je trvalá, takže ji uživatel musí nejprve vytvořit (jako speciální soubor), procesy se k ní musí připojit a po ukončení používání je nutné ji odstranit. Stejný koncept je možné využívat i v 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í [editovat]
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 [editovat]
- 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