私はErlangを新しくしました。現在、xmppサービスにejabberdを使用しています。 最近、いくつかの機能の問題については、分散型のerlangeプログラムを書いています。私は2台のマシン間でrpc:callを実行する必要があります。私はrpc:erlシミュレーターで正常に呼び出しを行うことができます。しかし、現在のシステムでは、ejabberdctlを使用してejabberdサービスを開始していました。私はチェックし、ejabberdctlファイルを修正しようとしました。しかし、私は-setcookieをうまく追加できません。ejabberdサービスを実行するためにsetcookieをejabberdctlに追加する方法や、起動時にsetcookieを使用せずに2つのノードを別のマシンに接続する方法はありますか?
ejabberdctlのコードセクションが
ctlexec()
{
CONN_NAME=$1; shift
[email protected]
$EXEC_CMD "$ERL \
$NAME ${CONN_NAME} \
-noinput \
-hidden \
-pa $EJABBERD_EBIN_PATH \
$KERNEL_OPTS \
-s ejabberd_ctl -extra $ERLANG_NODE $COMMAND"
}
最後の2行によって引き起こされる問題です:私は、このファイルはいくつかのいずれかの前に参照されていると思いますが、私ドン
$KERNEL_OPTS \
-s ejabberd_ctl -extra $ERLANG_NODE $COMMAND"
どこから来たのか知りません。 誰かがこのerlコマンドに-setcookie abcを追加する方法を知っていますか? ejabberdctlファイルを変更できない場合や悪い場合は、現在のシステムを変更することはできません。 つまり、私はejabberdシステムにsetcookieを追加する機会がありません。 新しいノードを既存のejabberdノード(現在のシステム)にどのように接続できますか?
ejabberdが最初に開始するとします。
最後に、ejabberctlファイルの変更を避けるために、2つのマシン間で.erlang.cookieを共有しています。私はまた、クラスタのセクションでejabberdの文書にこのメソッドを参照してください。 –