Erlang 如何使用不同的名称启动钢筋应用程序两次或两次以上?

Erlang 如何使用不同的名称启动钢筋应用程序两次或两次以上?,erlang,rebar,reltool,Erlang,Rebar,Reltool,我有一个叫做乒乓球的钢筋应用程序。在reab generate之后,我使用/rel/pingpong/bin/pingpong start启动打包的应用程序。问题是erlang VM始终具有名称-namepingpong@127.0.0.1但是我想用名称ping@127.0.0.1然后再次使用名称pong@127.0.0.1 我知道名称保留在./rel/pingpong/releases/VSN/vm.config中,但我不想在启动应用程序之前手动编辑该文件。我想要类似乒乓球开始的东西-name

我有一个叫做乒乓球的钢筋应用程序。在
reab generate
之后,我使用
/rel/pingpong/bin/pingpong start
启动打包的应用程序。问题是erlang VM始终具有名称
-namepingpong@127.0.0.1
但是我想用名称
ping@127.0.0.1
然后再次使用名称
pong@127.0.0.1


我知道名称保留在./rel/pingpong/releases/VSN/vm.config中,但我不想在启动应用程序之前手动编辑该文件。我想要类似乒乓球开始的东西-name=ping。有没有办法做到这一点?

您可以将bin/pingpong脚本编辑为如下内容:

而不是

NAME_ARG=`egrep -e '^-s?name' $RUNNER_ETC_DIR/vm.args`
设置:

通过这种方式,您将能够从命令行覆盖节点名称:

NAME_ARG="-name myname@localhost" bin/pingpong start
对于控制台/启动命令:

在yout启动脚本中查找一行:

CMD="$BINDIR/erlexec -boot $RUNNER_BASE_DIR/releases/$APP_VSN/$BOOTFILE -mode embedded -config $CONFIG_PATH -args_file $VMARGS_PATH"
在末尾添加$NAME_ARG:

 CMD="$BINDIR/erlexec -boot $RUNNER_BASE_DIR/releases/$APP_VSN/$BOOTFILE -mode embedded -config $CONFIG_PATH -args_file $VMARGS_PATH $NAME_ARG"

别忘了从.args文件中删除-name文件

它不起作用。NAME_ARG仅用于
停止
重新启动
附加
。但是对于
start
console
使用vm.args中的名称,忽略name_ARG。
 CMD="$BINDIR/erlexec -boot $RUNNER_BASE_DIR/releases/$APP_VSN/$BOOTFILE -mode embedded -config $CONFIG_PATH -args_file $VMARGS_PATH $NAME_ARG"