Po wydaniu zapisu do /dev/pts/X
( /proc/6350/fd/0
, 1
i 2
jest po prostu dowiązaniem do tego), co się dzieje, jest dokładnie to samo, co się dzieje, gdy proces 6350
(lub jednego z jego dzieci, odpowiednio rozwidlony) Wyjścia coś: to pisze do terminalu.
Jeśli spróbujesz czytać z tego urządzenia ( cat < /dev/pts/X
), wydarzy się coś dziwnego. Powinieneś zobaczyć rzeczy, które wpisujesz w oryginalnej powłoce. (Całkiem możliwe, że dopiero po wpisaniu pierwszego nowego wiersza - Zgaduję, że program terminalowy ( xterm
lub cokolwiek, którego używasz) wykonuje buforowanie linii, a 6350
powłoka, która została zablokowana, read
pobiera ten kawałek; wtedy albo powłoka może, albo może nie, wygrywaj kolejne odczyty, ale równie dobrze mogę się mylić.)
Chodzi o to, że kiedy czytasz lub piszesz na tym urządzeniu, nie rozmawiasz z inną powłoką, która go używa. Rozmawiasz z emulatorem terminala ( xterm
na przykład). Tylko emulator terminala może wstrzykiwać dane do tego kanału (co odczytuje powłoka), a wszystko, co powłoka zapisuje, trafia do terminala. Dołączenie drugiej powłoki tego nie zmienia.
Jeśli chcesz wprowadzić polecenia do tego 6530
procesu, będzie musiał to zrobić za pośrednictwem terminala (niezależnie od tego, czy jest to aplikacja X11, czy coś innego).
Zalecana lektura: Jaka jest dokładna różnica między „terminalem”, „powłoką”, „tty” i „konsolą”?