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"