私はマシンごとに1つのノードを持つ分散erlangシステムを実行しています。シェルコマンドからローカルのerlangノードに通知する最も簡単な方法
DNSは使用できないため、すべて同じ名前の-sname
paramで開始します。
erl -sname foo ...
オペレーティング・システム・デーモンは、シェル(/bin/sh
)を実行する機能を有している(USBスティックがシステムにpugged時)特定のイベントが発生したときに指令します。
このシェルコマンドを使用して、このマシン上のローカルのerlangノードで関数を呼び出す簡単な方法を探しています(USBスティックが検出されてマウントされた後でさらに処理を行う)。
私はシェルからerl -sname bar
を呼び出すことを考えて、これが移動するための方法です
[_,Host] = string:tokens(atom_to_list(node()), "@"),
The_node = list_to_atom("[email protected]" ++ Host),
spawn(The_node, My_fun),
のように見えるいくつかのコードを実行したのか?または、まったく新しいerlangノードの過剰使用を開始しています(ただし、しばしばやっていません)
または、gen_tcpによってオープンされたソケットに接続するか、名前付きパイプを読み取る方が良いでしょうか。
その他の提案はありますか?
これはUnixシステムで実行されています。
+1 erlangとそれを巧みに使います。 – gahooa