summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2014-10-27 14:58:14 +0000
committerSimon MacMullen <simon@rabbitmq.com>2014-10-27 14:58:14 +0000
commite427d70bb7aee380eaa1a6c48c02eca246b41b50 (patch)
tree77f12229b53433e4ad9018a9cde9199361b39f09 /src
parenta6499ee71ec42b73961a52a32b03358e97ce3d37 (diff)
downloadrabbitmq-server-git-e427d70bb7aee380eaa1a6c48c02eca246b41b50.tar.gz
Explain what we are doing and why.
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_epmd_monitor.erl16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/rabbit_epmd_monitor.erl b/src/rabbit_epmd_monitor.erl
index d5e9cfc94d..261554921a 100644
--- a/src/rabbit_epmd_monitor.erl
+++ b/src/rabbit_epmd_monitor.erl
@@ -37,11 +37,23 @@
-endif.
%%----------------------------------------------------------------------------
+%% It's possible for epmd to be killed out from underneath us. If that
+%% happens, then obviously clustering and rabbitmqctl stop
+%% working. This process checks up on epmd and restarts it /
+%% re-registers us with it if it has gone away.
+%%
+%% How could epmd be killed?
+%%
+%% 1) The most popular way for this to happen is when running as a
+%% Windows service. The user starts rabbitmqctl first, and this starts
+%% epmd under the user's account. When they log out epmd is killed.
+%%
+%% 2) Some packagings of (non-RabbitMQ?) Erlang apps might do "killall
+%% epmd" as a shutdown or uninstall step.
+%% ----------------------------------------------------------------------------
start_link() -> gen_server:start_link({local, ?SERVER}, ?MODULE, [], []).
-%%----------------------------------------------------------------------------
-
init([]) ->
{Me, Host} = rabbit_nodes:parts(node()),
Mod = net_kernel:epmd_module(),