Ich bin neu der Erlang. Derzeit verwenden wir ejabberd für unseren xmpp-Dienst. In letzter Zeit habe ich ein Programm für verteilte Erlangungen geschrieben. Ich muss rpc ausführen: Anruf zwischen zwei Maschinen. Ich kann den rpc tun: ruf erfolgreich am erl simulator. Aber unser aktuelles System verwendete ejabberdctl, um den ejabberd-Dienst zu starten. Ich habe überprüft und versuche, die ejabberdctl-Datei zu ändern. Aber ich kann -setcookie nicht erfolgreich hinzufügen.Wie kann ich setcookie in ejabberdctl hinzufügen, um den ejabberd-Dienst auszuführen oder zwei Knoten auf einem anderen Computer ohne setcookie beim Start verbinden?
der Codeabschnitt in ejabberdctl ist
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"
}
das Problem durch die beiden letzten Zeile verursacht:
$KERNEL_OPTS \
-s ejabberd_ctl -extra $ERLANG_NODE $COMMAND"
Ich denke, diese Datei, bevor jemand die verwiesen wird, aber ich don Ich weiß nicht, woher es kommt. Weiß jemand, wie kann ich -setcookie abc zu diesem Befehl erl hinzufügen? Wenn ich die ejabberdctl-Datei oder den schlimmsten Fall nicht ändern kann, kann ich das aktuelle System nicht ändern. , d. H. Ich habe keine Chance, dem Ejabberd-System Setcookie hinzuzufügen. Wie kann ich meinen neuen Knoten mit dem vorhandenen ejabberd-Knoten (unserem aktuellen System) verbinden?
Der Ejabberd soll zuerst starten.
Dank, schließlich, benutze ich die gemeinsame .erlang.cookie zwischen zwei Maschinen, um die Änderung der Ejabberctl-Datei zu vermeiden. Ich sehe diese Methode auch im Ejabberd-Dokument im Cluster-Bereich. –