From 28d104c2df389d3c050ee481b99026a047505223 Mon Sep 17 00:00:00 2001 From: Marcos Diez Date: Wed, 15 Oct 2014 21:53:19 +0000 Subject: [PATCH 1/2] unix shell scripts: option to pass -sname/-name to erlang --- scripts/rabbitmq-plugins | 4 +++- scripts/rabbitmq-server | 5 +++-- scripts/rabbitmqctl | 4 +++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/scripts/rabbitmq-plugins b/scripts/rabbitmq-plugins index 8b5b30b7208d..a60396551b15 100755 --- a/scripts/rabbitmq-plugins +++ b/scripts/rabbitmq-plugins @@ -19,11 +19,13 @@ # Non-empty defaults should be set in rabbitmq-env . `dirname $0`/rabbitmq-env +[ "xtrue" = "x$RABBITMQ_USE_LONGNAME" ] && RABBITMQ_NAME_TYPE=-name || RABBITMQ_NAME_TYPE=-sname + exec ${ERL_DIR}erl \ -pa "${RABBITMQ_HOME}/ebin" \ -noinput \ -hidden \ - -sname rabbitmq-plugins$$ \ + -$RABBITMQ_NAME_TYPE rabbitmq-plugins$$ \ -boot "${CLEAN_BOOT_FILE}" \ -s rabbit_plugins_main \ -enabled_plugins_file "$RABBITMQ_ENABLED_PLUGINS_FILE" \ diff --git a/scripts/rabbitmq-server b/scripts/rabbitmq-server index 96458094a346..7bb349a62f8c 100755 --- a/scripts/rabbitmq-server +++ b/scripts/rabbitmq-server @@ -19,6 +19,7 @@ # Non-empty defaults should be set in rabbitmq-env . `dirname $0`/rabbitmq-env +[ "xtrue" = "x$RABBITMQ_USE_LONGNAME" ] && RABBITMQ_NAME_TYPE=-name || RABBITMQ_NAME_TYPE=-sname RABBITMQ_START_RABBIT= [ "x" = "x$RABBITMQ_ALLOW_INPUT" ] && RABBITMQ_START_RABBIT=" -noinput" [ "x" = "x$RABBITMQ_NODE_ONLY" ] && RABBITMQ_START_RABBIT="$RABBITMQ_START_RABBIT -s rabbit boot " @@ -54,7 +55,7 @@ RABBITMQ_DIST_PORT=$RABBITMQ_DIST_PORT \ -noinput \ -hidden \ -s rabbit_prelaunch \ - -sname rabbitmqprelaunch$$ \ + $RABBITMQ_NAME_TYPE rabbitmqprelaunch$$ \ -extra "${RABBITMQ_NODENAME}" PRELAUNCH_RESULT=$? @@ -85,7 +86,7 @@ RABBITMQ_CONFIG_FILE=$RABBITMQ_CONFIG_FILE \ exec ${ERL_DIR}erl \ -pa ${RABBITMQ_EBIN_ROOT} \ ${RABBITMQ_START_RABBIT} \ - -sname ${RABBITMQ_NODENAME} \ + $RABBITMQ_NAME_TYPE ${RABBITMQ_NODENAME} \ -boot "${SASL_BOOT_FILE}" \ ${RABBITMQ_CONFIG_ARG} \ +W w \ diff --git a/scripts/rabbitmqctl b/scripts/rabbitmqctl index 31fe0afcc11f..a1fa7887da97 100755 --- a/scripts/rabbitmqctl +++ b/scripts/rabbitmqctl @@ -19,9 +19,11 @@ # Non-empty defaults should be set in rabbitmq-env . `dirname $0`/rabbitmq-env +[ "xtrue" = "x$RABBITMQ_USE_LONGNAME" ] && RABBITMQ_NAME_TYPE=-name || RABBITMQ_NAME_TYPE=-sname + # rabbitmqctl starts distribution itself, so we need to make sure epmd # is running. -${ERL_DIR}erl -sname rabbitmqctl-prelaunch-$$ -noinput -eval 'erlang:halt().' +${ERL_DIR}erl $RABBITMQ_NAME_TYPE rabbitmqctl-prelaunch-$$ -noinput -eval 'erlang:halt().' # We specify Mnesia dir and sasl error logger since some actions # (e.g. forget_cluster_node --offline) require us to impersonate the From 088d81897eade16b3587dd095534d346db55446b Mon Sep 17 00:00:00 2001 From: Marcos Diez Date: Wed, 15 Oct 2014 21:57:40 +0000 Subject: [PATCH 2/2] windows batch files: option to pass -sname/-name to erlang --- scripts/rabbitmq-echopid.bat | 14 ++++++++++++-- scripts/rabbitmq-plugins.bat | 10 +++++++++- scripts/rabbitmq-server.bat | 12 ++++++++++-- scripts/rabbitmq-service.bat | 12 ++++++++++-- scripts/rabbitmqctl.bat | 10 +++++++++- 5 files changed, 50 insertions(+), 8 deletions(-) diff --git a/scripts/rabbitmq-echopid.bat b/scripts/rabbitmq-echopid.bat index 5c652c30c022..2d3a6fa4e205 100644 --- a/scripts/rabbitmq-echopid.bat +++ b/scripts/rabbitmq-echopid.bat @@ -2,7 +2,7 @@ REM Usage: rabbitmq-echopid.bat REM -REM sname of the erlang node to connect to (required) +REM (s)name of the erlang node to connect to (required) setlocal @@ -18,8 +18,18 @@ if not exist "%WMIC_PATH%" ( goto fail ) +:: sets sname/name :: +if "!RABBITMQ_USE_LONGNAME!"=="" ( + set RABBITMQ_NAME_TYPE="-sname" +) + +if "!RABBITMQ_USE_LONGNAME!"=="true" ( + set RABBITMQ_NAME_TYPE="-name" +) + + :getpid -for /f "usebackq tokens=* skip=1" %%P IN (`%%WMIC_PATH%% process where "name='erl.exe' and commandline like '%%-sname %1%%'" get processid 2^>nul`) do ( +for /f "usebackq tokens=* skip=1" %%P IN (`%%WMIC_PATH%% process where "name='erl.exe' and commandline like '%%%RABBITMQ_NAME_TYPE% %1%%'" get processid 2^>nul`) do ( set PID=%%P goto echopid ) diff --git a/scripts/rabbitmq-plugins.bat b/scripts/rabbitmq-plugins.bat index 61e39e3885b3..1fc0e7338a01 100755 --- a/scripts/rabbitmq-plugins.bat +++ b/scripts/rabbitmq-plugins.bat @@ -23,6 +23,14 @@ set TDP0=%~dp0 set STAR=%* setlocal enabledelayedexpansion +if "!RABBITMQ_USE_LONGNAME!"=="" ( + set RABBITMQ_NAME_TYPE="-sname" +) + +if "!RABBITMQ_USE_LONGNAME!"=="true" ( + set RABBITMQ_NAME_TYPE="-name" +) + if "!RABBITMQ_SERVICENAME!"=="" ( set RABBITMQ_SERVICENAME=RabbitMQ ) @@ -55,7 +63,7 @@ if "!RABBITMQ_PLUGINS_DIR!"=="" ( set RABBITMQ_PLUGINS_DIR=!TDP0!..\plugins ) -"!ERLANG_HOME!\bin\erl.exe" -pa "!TDP0!..\ebin" -noinput -hidden -sname rabbitmq-plugins!RANDOM!!TIME:~9! -s rabbit_plugins_main -enabled_plugins_file "!RABBITMQ_ENABLED_PLUGINS_FILE!" -plugins_dist_dir "!RABBITMQ_PLUGINS_DIR:\=/!" -nodename !RABBITMQ_NODENAME! -extra !STAR! +"!ERLANG_HOME!\bin\erl.exe" -pa "!TDP0!..\ebin" -noinput -hidden %RABBITMQ_NAME_TYPE% rabbitmq-plugins!RANDOM!!TIME:~9! -s rabbit_plugins_main -enabled_plugins_file "!RABBITMQ_ENABLED_PLUGINS_FILE!" -plugins_dist_dir "!RABBITMQ_PLUGINS_DIR:\=/!" -nodename !RABBITMQ_NODENAME! -extra !STAR! endlocal endlocal diff --git a/scripts/rabbitmq-server.bat b/scripts/rabbitmq-server.bat index e23124068e23..1be96d521f2a 100755 --- a/scripts/rabbitmq-server.bat +++ b/scripts/rabbitmq-server.bat @@ -23,6 +23,14 @@ set TDP0=%~dp0 set STAR=%* setlocal enabledelayedexpansion +if "!RABBITMQ_USE_LONGNAME!"=="" ( + set RABBITMQ_NAME_TYPE="-sname" +) + +if "!RABBITMQ_USE_LONGNAME!"=="true" ( + set RABBITMQ_NAME_TYPE="-name" +) + if "!RABBITMQ_BASE!"=="" ( set RABBITMQ_BASE=!APPDATA!\RabbitMQ ) @@ -104,7 +112,7 @@ set RABBITMQ_EBIN_ROOT=!TDP0!..\ebin -pa "!RABBITMQ_EBIN_ROOT!" ^ -noinput -hidden ^ -s rabbit_prelaunch ^ - -sname rabbitmqprelaunch!RANDOM!!TIME:~9! ^ + %RABBITMQ_NAME_TYPE% rabbitmqprelaunch!RANDOM!!TIME:~9! ^ -extra "!RABBITMQ_NODENAME!" if ERRORLEVEL 2 ( @@ -140,7 +148,7 @@ if not "!RABBITMQ_NODE_IP_ADDRESS!"=="" ( -boot start_sasl ^ -s rabbit boot ^ !RABBITMQ_CONFIG_ARG! ^ --sname !RABBITMQ_NODENAME! ^ +%RABBITMQ_NAME_TYPE% !RABBITMQ_NODENAME! ^ +W w ^ +A30 ^ +P 1048576 ^ diff --git a/scripts/rabbitmq-service.bat b/scripts/rabbitmq-service.bat index fb2703f25a4b..dfccf324c36c 100755 --- a/scripts/rabbitmq-service.bat +++ b/scripts/rabbitmq-service.bat @@ -33,6 +33,14 @@ if "%1"=="" goto after_loop goto loop1 :after_loop +if "!RABBITMQ_USE_LONGNAME!"=="" ( + set RABBITMQ_NAME_TYPE="-sname" +) + +if "!RABBITMQ_USE_LONGNAME!"=="true" ( + set RABBITMQ_NAME_TYPE="-name" +) + if "!RABBITMQ_SERVICENAME!"=="" ( set RABBITMQ_SERVICENAME=RabbitMQ ) @@ -184,7 +192,7 @@ if "!RABBITMQ_CONFIG_FILE!"=="" ( -pa "!RABBITMQ_EBIN_ROOT!" ^ -noinput -hidden ^ -s rabbit_prelaunch ^ - -sname rabbitmqprelaunch!RANDOM!!TIME:~9! + %RABBITMQ_USE_LONGNAME% rabbitmqprelaunch!RANDOM!!TIME:~9! if ERRORLEVEL 3 ( rem ERRORLEVEL means (or greater) so we need to catch all other failure @@ -247,7 +255,7 @@ set ERLANG_SERVICE_ARGUMENTS=!ERLANG_SERVICE_ARGUMENTS:"=\"! -env ERL_CRASH_DUMP="!RABBITMQ_BASE:\=/!/erl_crash.dump" ^ -workdir "!RABBITMQ_BASE!" ^ -stopaction "rabbit:stop_and_halt()." ^ --sname !RABBITMQ_NODENAME! ^ +%RABBITMQ_USE_LONGNAME% !RABBITMQ_NODENAME! ^ !CONSOLE_FLAG! ^ -comment "A robust and scalable messaging broker" ^ -args "!ERLANG_SERVICE_ARGUMENTS!" > NUL diff --git a/scripts/rabbitmqctl.bat b/scripts/rabbitmqctl.bat index 7a2c454cd29f..c549dd59fe5e 100755 --- a/scripts/rabbitmqctl.bat +++ b/scripts/rabbitmqctl.bat @@ -27,6 +27,14 @@ if "!RABBITMQ_BASE!"=="" ( set RABBITMQ_BASE=!APPDATA!\RabbitMQ ) +if "!RABBITMQ_USE_LONGNAME!"=="" ( + set RABBITMQ_NAME_TYPE="-sname" +) + +if "!RABBITMQ_USE_LONGNAME!"=="true" ( + set RABBITMQ_NAME_TYPE="-name" +) + if "!COMPUTERNAME!"=="" ( set COMPUTERNAME=localhost ) @@ -57,7 +65,7 @@ if not exist "!ERLANG_HOME!\bin\erl.exe" ( rem rabbitmqctl starts distribution itself, so we need to make sure epmd rem is running. -"!ERLANG_HOME!\bin\erl.exe" -sname rabbitmqctl-prelaunch-!RANDOM!!TIME:~9! -noinput -eval "erlang:halt()." +"!ERLANG_HOME!\bin\erl.exe" %RABBITMQ_NAME_TYPE% rabbitmqctl-prelaunch-!RANDOM!!TIME:~9! -noinput -eval "erlang:halt()." "!ERLANG_HOME!\bin\erl.exe" ^ -pa "!TDP0!..\ebin" ^