diff options
author | Francesco Mazzoli <francesco@rabbitmq.com> | 2012-04-17 16:36:15 +0100 |
---|---|---|
committer | Francesco Mazzoli <francesco@rabbitmq.com> | 2012-04-17 16:36:15 +0100 |
commit | 59a8cdb514cc539ba92f7e550284f00ba118345c (patch) | |
tree | 20ce9a9af4059dbcdf846bff440607b064acedf4 | |
parent | 0bbde99b7539b773679fd74e9978b1a2bad08702 (diff) | |
download | rabbitmq-server-59a8cdb514cc539ba92f7e550284f00ba118345c.tar.gz |
Added wait_node script to wait for the node to be up.
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | src/rabbit_misc.erl | 9 | ||||
-rwxr-xr-x | wait_node | 21 |
3 files changed, 25 insertions, 7 deletions
@@ -207,7 +207,7 @@ start-background-node: all -rm -f $(RABBITMQ_MNESIA_DIR).pid mkdir -p $(RABBITMQ_MNESIA_DIR) setsid sh -c "$(MAKE) run-background-node > $(RABBITMQ_MNESIA_DIR)/startup_log 2> $(RABBITMQ_MNESIA_DIR)/startup_err" & - sleep 5 + ./wait_node $(RABBITMQ_NODENAME) $(RABBITMQ_MNESIA_DIR).pid start-rabbit-on-node: all echo "rabbit:start()." | $(ERL_CALL) diff --git a/src/rabbit_misc.erl b/src/rabbit_misc.erl index e224bf7b..9456e3c1 100644 --- a/src/rabbit_misc.erl +++ b/src/rabbit_misc.erl @@ -211,10 +211,10 @@ -spec(os_cmd/1 :: (string()) -> string()). -spec(gb_sets_difference/2 :: (gb_set(), gb_set()) -> gb_set()). -spec(is_running/2 :: (node(), atom()) -> boolean()). --spec(wait_for_application/3 :: (node(), pid(), atom()) +-spec(wait_for_application/3 :: (node(), string(), atom()) -> ok | {error, process_not_running}). --spec(wait_for_process_death/1 :: (pid()) -> ok). --spec(read_pid_file/2 :: (file:name(), boolean()) -> pid() | no_return()). +-spec(wait_for_process_death/1 :: (string()) -> ok). +-spec(read_pid_file/2 :: (file:name(), boolean()) -> string() | no_return()). -endif. @@ -1000,6 +1000,3 @@ system(Cmd) -> % Escape the quotes in a shell command so that it can be used in "sh -c 'cmd'" escape_quotes(Cmd) -> lists:flatten(lists:map(fun ($') -> "'\\''"; (Ch) -> Ch end, Cmd)). - -format_parse_error({_Line, Mod, Err}) -> - lists:flatten(Mod:format_error(Err)). diff --git a/wait_node b/wait_node new file mode 100755 index 00000000..e4549b5c --- /dev/null +++ b/wait_node @@ -0,0 +1,21 @@ +#!/usr/bin/env escript +%% -*- erlang -*- +%%! -sname wait_node -pa ./ebin + +main([NodeStr, PidFile]) -> + case {code:load_file(rabbit_misc), code:load_file(rabbit_nodes)} of + {{module, _}, {module, _}} -> + ok; + _ -> + io:format("Compile with 'make' before running this script~n") + end, + Node = rabbit_nodes:make(NodeStr), + Pid = rabbit_misc:read_pid_file(PidFile, true), + io:format("pid is ~s~n", [Pid]), + rabbit_misc:wait_for_application(Node, Pid, kernel); +main(_) -> + usage(). + +usage() -> + io:format("Usage: ./wait_node node pidfile~n"), + halt(1). |