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

时间:2012-11-19 15:23:47

标签: erlang rebar reltool

我有一个名为pingpong的钢筋应用程序。在rebar generate之后,我使用./rel/pingpong/bin/pingpong start启动打包的应用程序。问题是erlang VM的名称始终为-name pingpong@127.0.0.1,但我想要的是使用名称ping@127.0.0.1启动应用程序一次,然后再使用名称pong@127.0.0.1启动应用程序。

我知道该名称保留在./rel/pingpong/releases/VSN/vm.config中,但我不想在启动应用程序之前手动编辑该文件。我想要像pingpong start -name=ping这样的东西。有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:3)

您可以将bin / pingpong脚本编辑为类似这样的内容:

而不是

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

组:

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

通过这种方式,您可以从命令行覆盖节点名称:

NAME_ARG="-name myname@localhost" bin/pingpong start

对于console / 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