我有一个名为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
这样的东西。有没有办法实现这个目标?
答案 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