2017-03-16 67 views
4

假設我有一個簡單的python腳本,它使用subprocess模塊執行elixir/erlang腳本。Elixir/Erlang:與外部進程通信

假設python腳本的操作系統PID爲P1,而運行的衍生elixir/erlang腳本的操作系統PID爲P2

我想知道P1P2之間的通信是否可能。更具體地講,P1寫東西的P2stdin,並P2讀取P1接收到的輸入,並寫入了相應的輸出,以自己的stdoutP1P2stdout讀取和再次寫東西的P2stdin等。

我知道另一種方式是可能的,即從elixir/erlang中產生外部進程,然後與進程進行通信。任何幫助表示感謝,謝謝。

+2

當然,爲什麼不呢?只需從Elixir使用'IO.gets'(或類似的)讀取並使用'IO.puts'(或類似的)寫入,然後在Python中做相反的操作(http://stackoverflow.com/questions/8475290/how-do-i -write至A-蟒蛇 - 子 - 標準輸入)?你試過這個嗎? – Dogbert

+0

謝謝!如果'P1'也是一個靈丹妙藥的過程呢? – stark

+1

您可以使用端口而不是子進程。 https://hexdocs.pm/elixir/Port.html – Dogbert

回答

0

像Dogbert說的,你可以使用Ports來代替。退房Erlporthere是Elixir和Python之間溝通的博客文章