2014-03-24 60 views
0

使用AIX或Unix中的任何終端或串行端口可以實現進程間通信嗎?Unix/AIX中的進程間通信

我想通過使用命令/腳本來實現這一點,只有一個進程在終端上寫入字符串,另一個進程讀取相同的終端並處理該字符串。我知道使用管道也是可能的,但我對此沒有足夠的想法。

也有一種方法可以確定AIX機器中哪些所有端口/終端都可用? 或者是否有可能在運行時(不是引導時間)創建新的終端,只有以上兩個進程纔會使用該終端?

回答

1

我想你想要的是pty的?或者,另一個選項是unix域套接字。

你的第一個問題的答案是「不」......不是真的。當你寫出一個tty時,這個輸出將被髮送到真實的設備,並且不能被讀回。

的TTY列表的上一個系統:使用lsdev -Cctty

創建TTY的在運行時是可能的,但不是你真正想要什麼任。 tty是串口的孩子,你不能隨意添加串口。他們是真實的東西。使用AIX和Power系統,您可以在系統啓動時(熱插拔)添加設備,但是這樣做(我假設)遠離您的原始主題。

pty和unix域套接字之間的基本差異是一個pty模仿真實tty在一個方向上的輸出和輸入過程。這就是telnet,rlogin,ssh和許多其他守護進程在連接時使用的情況。通過使用pty可以讓ksh相信它有一個真正的tty。如果你不需要這些,那麼他們會增加你不需要的麻煩。找到一個關於如何創建和使用Unix域套接字的鏈接,並且你將擁有你所需要的(或者一個管道,但是一個管道需要一個我認爲你沒有的父/子關係)。