9

シェルからノードを起動できることは承知しています。私が探しているのは、モジュール内からリモート ノードを起動する方法です。検索しましたが、何も見つかりませんでした。

どんな助けでも大歓迎です。

4

2 に答える 2

13

施設がありpool(3)ます:

pool は、Erlang ノードのセットを計算プロセッサのプールとして実行するために使用できます。これは、マスター ノードとスレーブ ノードのセットとして編成されます。

pool:start/1,2新しいプールを開始します。このファイル.hosts.erlangは、プール ノードを開始できるホスト名を見つけるために読み取られます。スレーブ ノードは で開始されslave:start/2,3、渡されName、提供されている場合は Args. Nameはノード名の最初の部分として使用され、Argsコマンド ライン引数を指定するために使用されます。

プールを使用すると、負荷分散機能を無料で利用できます。

マスター ノードは次の方法で起動できます。

erl -sname poolmaster -rsh ssh

ここでのキーは、リモート ホストでスレーブ ノードを起動するため-rshの代替手段を指定します。rshここでは SSH を使用しました。ボックスに有効な SSH キーがあり、これらのキーを使用してリモート ホストを認証できることを確認してください。

ファイル.hosts.erlangにホストがない場合、スレーブ ノードは開始されません。必要に応じて、 を使用slave:start/2,3して手動で引数を渡してスレーブ ノードを開始できます。

たとえば、リモート ノードを起動できます。

Arg = "-mnesia_dir " ++ M,
slave:start(H, Name, Arg).

epmd(1)Erlang ノードを起動するために、リモート ボックスが稼働中であることを確認します。

それが役立つことを願っています。

于 2011-01-31T18:05:23.263 に答える
11

プールがslave(3)モジュールであるというもう少し低いレベル。プールは、スレーブの機能に基づいて構築されています。

slave:start新しいスレーブを開始するために使用します。

おそらく-rsh sshコマンドラインでも指定する必要があります。

したがって、プールが提供する機能が必要な場合はプールを使用し、別のものが必要な場合は、スレーブから自分で構築できます。

于 2011-01-31T19:28:22.853 に答える