diff options
| author | Emile Joubert <emile@rabbitmq.com> | 2010-11-30 15:57:26 +0000 |
|---|---|---|
| committer | Emile Joubert <emile@rabbitmq.com> | 2010-11-30 15:57:26 +0000 |
| commit | 69dda299b699fc755d906f38f173c7b4b1879e2c (patch) | |
| tree | b45e63e71255c4d9aa9b270f125c6238b7ba8d48 | |
| parent | 275195fc340fa8ed14e13be82cd6fa82fc13d10e (diff) | |
| download | rabbitmq-server-git-69dda299b699fc755d906f38f173c7b4b1879e2c.tar.gz | |
Check if nodename is available before startup
| -rwxr-xr-x | scripts/rabbitmq-server | 4 | ||||
| -rw-r--r-- | scripts/rabbitmq-server.bat | 5 | ||||
| -rw-r--r-- | src/rabbit_plugin_activator.erl | 11 |
3 files changed, 14 insertions, 6 deletions
diff --git a/scripts/rabbitmq-server b/scripts/rabbitmq-server index c5d883c365..66ce438442 100755 --- a/scripts/rabbitmq-server +++ b/scripts/rabbitmq-server @@ -91,8 +91,8 @@ if [ "x" = "x$RABBITMQ_NODE_ONLY" ]; then -pa "$RABBITMQ_EBIN_ROOT" \ -noinput \ -hidden \ - -s rabbit_plugin_activator \ - -extra "$RABBITMQ_PLUGINS_DIR" "${RABBITMQ_PLUGINS_EXPAND_DIR}" + -s rabbit_prelaunch \ + -extra "$RABBITMQ_PLUGINS_DIR" "${RABBITMQ_PLUGINS_EXPAND_DIR}" "${RABBITMQ_NODENAME}" then RABBITMQ_BOOT_FILE="${RABBITMQ_PLUGINS_EXPAND_DIR}/rabbit" RABBITMQ_EBIN_PATH="" diff --git a/scripts/rabbitmq-server.bat b/scripts/rabbitmq-server.bat index 94180de95a..f972a4aa16 100644 --- a/scripts/rabbitmq-server.bat +++ b/scripts/rabbitmq-server.bat @@ -117,9 +117,10 @@ set RABBITMQ_EBIN_ROOT=!TDP0!..\ebin "!ERLANG_HOME!\bin\erl.exe" ^
-pa "!RABBITMQ_EBIN_ROOT!" ^
-noinput -hidden ^
--s rabbit_plugin_activator ^
+-s rabbit_prelaunch ^
-extra "!RABBITMQ_PLUGINS_DIR:\=/!" ^
- "!RABBITMQ_PLUGINS_EXPAND_DIR:\=/!"
+ "!RABBITMQ_PLUGINS_EXPAND_DIR:\=/!" ^
+ "!RABBITMQ_NODENAME!"
set RABBITMQ_BOOT_FILE=!RABBITMQ_PLUGINS_EXPAND_DIR!\rabbit
if not exist "!RABBITMQ_BOOT_FILE!.boot" (
diff --git a/src/rabbit_plugin_activator.erl b/src/rabbit_plugin_activator.erl index 072f297e69..59d8efd484 100644 --- a/src/rabbit_plugin_activator.erl +++ b/src/rabbit_plugin_activator.erl @@ -29,7 +29,7 @@ %% Contributor(s): ______________________________________. %% --module(rabbit_plugin_activator). +-module(rabbit_prelaunch). -export([start/0, stop/0]). @@ -52,7 +52,7 @@ start() -> io:format("Activating RabbitMQ plugins ...~n"), %% Determine our various directories - [PluginDir, UnpackedPluginDir] = init:get_plain_arguments(), + [PluginDir, UnpackedPluginDir, NodeName] = init:get_plain_arguments(), RootName = UnpackedPluginDir ++ "/rabbit", %% Unpack any .ez plugins @@ -130,6 +130,13 @@ start() -> [io:format("* ~s-~s~n", [App, proplists:get_value(App, AppVersions)]) || App <- PluginApps], io:nl(), + case net_kernel:start([list_to_atom(NodeName), shortnames]) of + {ok, _Pid} -> ok = net_kernel:stop(); + {error, Result} -> + terminate("starting node with name ~p failed - " + "an instance with the same name may already be running~n~p~n", + [NodeName, Result]) + end, halt(), ok. |
