Как запустить приложение арматуры дважды или более с разными именами?
У меня есть приложение для арматуры под названием 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 ответ
Вы можете отредактировать скрипт 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
Для консоли / команды запуска:
Найдите строку в вашем скрипте запуска:
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"
И не забудьте удалить -name NAME из ваших файлов.args