Fórum Root.cz

Hlavní témata => Software => Téma založeno: Michal Štrba 14. 04. 2014, 19:22:41

Název: Oboustranná roura (pipe)
Přispěvatel: Michal Štrba 14. 04. 2014, 19:22:41
Nazdar!

Chcel by som vediet, ci a ako sa da v Linuxe urobit obojstrannu ruru, tj. ze vystup procesu A je vstupom pre proces B a vystup procesu B je vstupom pre proces A (cize spolu navzajom komunikuju). Vedel by som to spravit pomocou suborov, co sa mi ale nezda ako dobre riesenie, pretoze je pri tom potrebne vyuzit disk.

Dakujem za odpoved.
Název: Re:Obojstranna rura (pipe)
Přispěvatel: Kolemjdoucí 14. 04. 2014, 20:00:12
A proč nepoužít dvě normální roury?
Název: Re:Obojstranna rura (pipe)
Přispěvatel: anon 14. 04. 2014, 20:33:22
Bud dve normalni nebo pokud oboustranny tak socket
Název: Re:Obojstranna rura (pipe)
Přispěvatel: Franta <xkucf03/> 14. 04. 2014, 20:37:20
Zkoušel jsem dvě pojmenované roury, ale to se nenastartuje, pravděpodobně na sebe čekají navzájem.

Funguje ale propojení procesů přes SOCAT.

Kód: [Vybrat]
$ cat a.sh
#!/bin/bash

date;
dd bs=1 | tee záznam.txt

Kód: [Vybrat]
$ socat exec:'./a.sh' exec:'dd bs=1'
Příkaz date vytvoří primární kousek dat a ten pak bude rotovat mezi oběma procesy; tee to pak bude osypávat ještě do souboru, abys viděl, že to něco dělá. Případně to můžeš dát bez tee a jako druhý proces použít měřák pv:

Kód: [Vybrat]
socat exec:'./a.sh' exec:'pv'