シェルからノードを起動できることは承知しています。私が探しているのは、モジュール内からリモート ノードを起動する方法です。検索しましたが、何も見つかりませんでした。
どんな助けでも大歓迎です。
シェルからノードを起動できることは承知しています。私が探しているのは、モジュール内からリモート ノードを起動する方法です。検索しましたが、何も見つかりませんでした。
どんな助けでも大歓迎です。
施設があり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 ノードを起動するために、リモート ボックスが稼働中であることを確認します。
それが役立つことを願っています。
プールがslave(3)モジュールであるというもう少し低いレベル。プールは、スレーブの機能に基づいて構築されています。
slave:start
新しいスレーブを開始するために使用します。
おそらく-rsh ssh
コマンドラインでも指定する必要があります。
したがって、プールが提供する機能が必要な場合はプールを使用し、別のものが必要な場合は、スレーブから自分で構築できます。