summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmile Joubert <emile@rabbitmq.com>2010-11-30 15:57:26 +0000
committerEmile Joubert <emile@rabbitmq.com>2010-11-30 15:57:26 +0000
commitcd644f51606a08324376335fe8d9b8dc54259821 (patch)
treeb45e63e71255c4d9aa9b270f125c6238b7ba8d48
parentda9e6d2ba8ca5eba30dec82c6c06d1217bd1b7b9 (diff)
downloadrabbitmq-server-cd644f51606a08324376335fe8d9b8dc54259821.tar.gz
Check if nodename is available before startup
-rwxr-xr-xscripts/rabbitmq-server4
-rw-r--r--scripts/rabbitmq-server.bat5
-rw-r--r--src/rabbit_plugin_activator.erl11
3 files changed, 14 insertions, 6 deletions
diff --git a/scripts/rabbitmq-server b/scripts/rabbitmq-server
index c5d883c3..66ce4384 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 94180de9..f972a4aa 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 072f297e..59d8efd4 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.