2017-03-16 4 views
4

Angenommen, ich habe ein einfaches Python-Skript, das ein Elixir/Erlang-Skript mit dem subprocess-Modul ausführt.Elixir/Erlang: Kommunikation mit externem Prozess

Nehmen wir an, die Betriebssystem-PID des Python-Skripts ist P1 und die des ausgeführten Elixier/Erlang-Skripts ist P2.

Ich möchte wissen, ob die Kommunikation zwischen P1 und P2 möglich ist. Genauer gesagt, schreibt P1 etwas zum stdin von P2 und P2 liest die empfangene Eingabe von P1 und schreibt eine entsprechende Ausgabe an seinen eigenen stdout und P1 liest aus den stdout von P2 und wieder schreibt etwas auf die stdin von P2 und so weiter.

Ich weiß, dass der andere Weg möglich ist, d. H., Externen Prozess von innen Elixir/Erlang Laichen und dann mit dem Prozess kommunizieren. Jede Hilfe geschätzt, danke.

+2

Sicher, warum nicht? Lies einfach von Elixir mit 'IO.gets' (oder ähnlich) und schreibe mit' IO.puts' (oder ähnlich) und mache das Umgekehrte in Python (http://stackoverflow.com/questions/8475290/how-do-i -write-zu-python-subprozess-stdin)? Hast du das versucht? – Dogbert

+0

Danke! Was wäre, wenn "P1" auch ein Elixierprozess wäre? – stark

+1

Sie können Ports anstelle von Subprozess verwenden. https://hexdocs.pm/elixir/Port.html – Dogbert

Antwort

0

Wie Dogbert sagte, können Sie stattdessen Ports verwenden. Check out Erlport und here ist ein Blog-Beitrag über die Kommunikation zwischen Elixir und Python

Verwandte Themen