summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlexey Lebedeff <alebedev@mirantis.com>2016-03-11 20:03:51 +0300
committerAlexey Lebedeff <alebedev@mirantis.com>2016-03-11 20:04:11 +0300
commit9b6c04b11d879601c8aa11c5ae0e4749618884be (patch)
treea6490c0ae904cb1159bf7536b7cfde1561e69e40 /src
parent2d6383bade61fea0b8652b72d25bb1a9f0d6133f (diff)
downloadrabbitmq-server-git-9b6c04b11d879601c8aa11c5ae0e4749618884be.tar.gz
Add an explanation about why `socat(1)` is used
Diffstat (limited to 'src')
-rw-r--r--src/rabbit.erl9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/rabbit.erl b/src/rabbit.erl
index 543b0448d7..1dca053d8c 100644
--- a/src/rabbit.erl
+++ b/src/rabbit.erl
@@ -322,6 +322,15 @@ sd_notify_legacy() ->
false
end.
+%% socat(1) is the most portable way the sd_notify could be
+%% implemented in erlang, without introducing some NIF. Currently the
+%% following issues prevent us from implementing it in a more
+%% reasonable way:
+%% - systemd-notify(1) is unstable for non-root users
+%% - erlang doesn't support unix domain sockets.
+%%
+%% Some details on how we ended with such a solution:
+%% https://github.com/rabbitmq/rabbitmq-server/issues/664
sd_notify_socat() ->
case sd_current_unit() of
{ok, Unit} ->