summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@lshift.net>2008-12-10 18:05:51 +0000
committerMatthias Radestock <matthias@lshift.net>2008-12-10 18:05:51 +0000
commit74fc138adb24802ba22746b0b9edc2b8fdaffaf5 (patch)
treedfe34f462ef375814185b2ba2b01b3bcbdbcf5e1
parent03753d9eb11fe9cdf37dfe10a990ccf17a4aa5fe (diff)
parentce7b45fa876212da95dcdbdbc5d2b9899e9680fa (diff)
downloadrabbitmq-server-74fc138adb24802ba22746b0b9edc2b8fdaffaf5.tar.gz
merge bug19914 into default
-rw-r--r--.hgignore4
-rw-r--r--Makefile67
-rw-r--r--docs/rabbitmq-multi.1.pod (renamed from docs/rabbitmq-multi.pod)0
-rw-r--r--docs/rabbitmq-server.1.pod (renamed from docs/rabbitmq-server.pod)22
-rw-r--r--docs/rabbitmq.5.pod60
-rw-r--r--docs/rabbitmqctl.1.pod (renamed from docs/rabbitmqctl.pod)13
-rw-r--r--packaging/RPMS/Fedora/rabbitmq-server.spec4
-rw-r--r--packaging/windows/rabbitmq-service.pod30
-rwxr-xr-xscripts/rabbitmq-mnesia-current35
-rwxr-xr-xscripts/rabbitmq-multi34
-rwxr-xr-xscripts/rabbitmq-multi.bat16
-rwxr-xr-xscripts/rabbitmq-server71
-rwxr-xr-xscripts/rabbitmq-server.bat53
-rwxr-xr-xscripts/rabbitmq-service.bat85
-rw-r--r--src/rabbit_control.erl11
-rw-r--r--src/rabbit_multi.erl12
16 files changed, 327 insertions, 190 deletions
diff --git a/.hgignore b/.hgignore
index 0781e32f..28f9cfd8 100644
--- a/.hgignore
+++ b/.hgignore
@@ -11,7 +11,9 @@ syntax: regexp
^rabbit.plt$
^packaging/RPMS/Fedora/(BUILD|RPMS|SOURCES|SPECS|SRPMS)$
-^packaging/debs/Debian/rabbitmq-server_.*\.(dsc|tar\.gz|deb|changes)$
+^packaging/debs/Debian/rabbitmq-server_.*\.(dsc|(diff|tar)\.gz|deb|changes)$
^packaging/debs/apt-repository/debian$
^packaging/generic-unix/rabbitmq-server-generic-unix-.*\.tar\.gz$
^packaging/windows/rabbitmq-server-windows-.*\.zip$
+
+^docs/.*\.[15]\.gz$
diff --git a/Makefile b/Makefile
index 66637ee2..76919629 100644
--- a/Makefile
+++ b/Makefile
@@ -1,11 +1,15 @@
-NODENAME=rabbit
-RABBIT_ARGS=
+RABBITMQ_NODENAME=rabbit
+RABBITMQ_SERVER_START_ARGS=
+RABBITMQ_MNESIA_DIR=/tmp/rabbitmq-$(RABBITMQ_NODENAME)-mnesia
+RABBITMQ_LOG_BASE=/tmp
+
SOURCE_DIR=src
EBIN_DIR=ebin
INCLUDE_DIR=include
SOURCES=$(wildcard $(SOURCE_DIR)/*.erl)
TARGETS=$(EBIN_DIR)/rabbit_framing.beam $(patsubst $(SOURCE_DIR)/%.erl, $(EBIN_DIR)/%.beam,$(SOURCES))
WEB_URL=http://stage.rabbitmq.com/
+MANPAGES=$(patsubst %.pod, %.gz, $(wildcard docs/*.[0-9].pod))
ifndef USE_SPECS
# our type specs rely on features / bug fixes in dialyzer that are
@@ -18,9 +22,6 @@ endif
#other args: +native +"{hipe,[o3,verbose]}" -Ddebug=true +debug_info +no_strict_record_tests
ERLC_OPTS=-I $(INCLUDE_DIR) -o $(EBIN_DIR) -Wall -v +debug_info $(shell [ $(USE_SPECS) = "true" ] && echo "-Duse_specs")
-MNESIA_DIR=/tmp/rabbitmq-$(NODENAME)-mnesia
-LOG_BASE=/tmp
-
VERSION=0.0.0
TARBALL_NAME=rabbitmq-server-$(VERSION)
TARGET_SRC_DIR=dist/$(TARBALL_NAME)
@@ -29,7 +30,7 @@ SIBLING_CODEGEN_DIR=../rabbitmq-codegen/
AMQP_CODEGEN_DIR=$(shell [ -d $(SIBLING_CODEGEN_DIR) ] && echo $(SIBLING_CODEGEN_DIR) || echo codegen)
AMQP_SPEC_JSON_PATH=$(AMQP_CODEGEN_DIR)/amqp-0.8.json
-ERL_CALL=erl_call -sname $(NODENAME) -e
+ERL_CALL=erl_call -sname $(RABBITMQ_NODENAME) -e
# for the moment we don't use boot files because they introduce a
# dependency on particular versions of OTP applications
@@ -54,26 +55,43 @@ clean: cleandb
rm -f $(EBIN_DIR)/*.beam
rm -f $(EBIN_DIR)/rabbit.boot $(EBIN_DIR)/rabbit.script
rm -f $(INCLUDE_DIR)/rabbit_framing.hrl $(SOURCE_DIR)/rabbit_framing.erl codegen.pyc
+ rm -f docs/*.[0-9].gz
cleandb: stop-node
- erl -mnesia dir '"$(MNESIA_DIR)"' -noshell -eval 'lists:foreach(fun file:delete/1, filelib:wildcard(mnesia:system_info(directory) ++ "/*")), halt().'
+ erl -mnesia dir '"$(RABBITMQ_MNESIA_DIR)"' -noshell -eval 'lists:foreach(fun file:delete/1, filelib:wildcard(mnesia:system_info(directory) ++ "/*")), halt().'
############ various tasks to interact with RabbitMQ ###################
+BASIC_SCRIPT_ENVIRONMENT_SETTINGS=\
+ RABBITMQ_NODE_IP_ADDRESS="$(RABBITMQ_NODE_IP_ADDRESS)" \
+ RABBITMQ_NODE_PORT="$(RABBITMQ_NODE_PORT)" \
+ RABBITMQ_LOG_BASE="$(RABBITMQ_LOG_BASE)" \
+ RABBITMQ_MNESIA_DIR="$(RABBITMQ_MNESIA_DIR)"
+
run: all
- NODE_IP_ADDRESS=$(NODE_IP_ADDRESS) NODE_PORT=$(NODE_PORT) NODE_ONLY=true LOG_BASE=$(LOG_BASE) RABBIT_ARGS="$(RABBIT_ARGS) -s rabbit" MNESIA_DIR=$(MNESIA_DIR) ./scripts/rabbitmq-server
+ $(BASIC_SCRIPT_ENVIRONMENT_SETTINGS) \
+ RABBITMQ_NODE_ONLY=true \
+ RABBITMQ_SERVER_START_ARGS="$(RABBITMQ_SERVER_START_ARGS) -s rabbit" \
+ ./scripts/rabbitmq-server
check-mnesia-schema: all
- NODE_IP_ADDRESS=$(NODE_IP_ADDRESS) NODE_PORT=$(NODE_PORT) LOG_BASE=$(LOG_BASE) MNESIA_DIR=$(MNESIA_DIR) ./scripts/rabbitmq-mnesia-current
+ $(BASIC_SCRIPT_ENVIRONMENT_SETTINGS) \
+ ./scripts/rabbitmq-mnesia-current
run-node: all
- NODE_IP_ADDRESS=$(NODE_IP_ADDRESS) NODE_PORT=$(NODE_PORT) NODE_ONLY=true LOG_BASE=$(LOG_BASE) RABBIT_ARGS="$(RABBIT_ARGS)" MNESIA_DIR=$(MNESIA_DIR) ./scripts/rabbitmq-server
+ $(BASIC_SCRIPT_ENVIRONMENT_SETTINGS) \
+ RABBITMQ_NODE_ONLY=true \
+ RABBITMQ_SERVER_START_ARGS="$(RABBITMQ_SERVER_START_ARGS)" \
+ ./scripts/rabbitmq-server
run-tests: all
echo "rabbit_tests:all_tests()." | $(ERL_CALL)
start-background-node: stop-node
- NODE_IP_ADDRESS=$(NODE_IP_ADDRESS) NODE_PORT=$(NODE_PORT) NODE_ONLY=true LOG_BASE=$(LOG_BASE) RABBIT_ARGS="$(RABBIT_ARGS) -detached" MNESIA_DIR=$(MNESIA_DIR) ./scripts/rabbitmq-server ; sleep 1
+ $(BASIC_SCRIPT_ENVIRONMENT_SETTINGS) \
+ RABBITMQ_NODE_ONLY=true \
+ RABBITMQ_SERVER_START_ARGS="$(RABBITMQ_SERVER_START_ARGS) -detached" \
+ ./scripts/rabbitmq-server ; sleep 1
start-rabbit-on-node: all
echo "rabbit:start()." | $(ERL_CALL)
@@ -106,7 +124,7 @@ srcdist: distclean
elinks -dump -no-references -no-numbering $(WEB_URL)build-server.html \
>> $(TARGET_SRC_DIR)/BUILD
sed -i 's/%%VERSION%%/$(VERSION)/' $(TARGET_SRC_DIR)/ebin/rabbit.app
-
+
cp -r $(AMQP_CODEGEN_DIR)/* $(TARGET_SRC_DIR)/codegen/
cp codegen.py Makefile $(TARGET_SRC_DIR)
@@ -123,23 +141,34 @@ distclean: clean
rm -rf dist
find . -name '*~' -exec rm {} \;
-install: all
+%.gz: %.pod
+ pod2man \
+ -n `echo $$(basename $*) | sed -e 's/\.[^.]\+//'` \
+ -s `echo $$(basename $*) | sed -e 's/.*\.\([^.]\+\)/\1/'` \
+ -c "RabbitMQ AMQP Server" \
+ -d "" \
+ -r "" \
+ $< | gzip --best > $@
+
+docs_all: $(MANPAGES)
+
+install: all docs_all
@[ -n "$(TARGET_DIR)" ] || (echo "Please set TARGET_DIR."; false)
@[ -n "$(SBIN_DIR)" ] || (echo "Please set SBIN_DIR."; false)
@[ -n "$(MAN_DIR)" ] || (echo "Please set MAN_DIR."; false)
-
+
mkdir -p $(TARGET_DIR)
cp -r ebin include LICENSE LICENSE-MPL-RabbitMQ INSTALL $(TARGET_DIR)
chmod 0755 scripts/*
mkdir -p $(SBIN_DIR)
- mkdir -p $(MAN_DIR)/man1
cp scripts/rabbitmq-server $(SBIN_DIR)
cp scripts/rabbitmqctl $(SBIN_DIR)
cp scripts/rabbitmq-multi $(SBIN_DIR)
cp scripts/rabbitmq-mnesia-current $(SBIN_DIR)
- for manpage in docs/*.pod ; do \
- pod2man -c "RabbitMQ AMQP Server" -d "" -r "" \
- $$manpage | gzip --best > \
- $(MAN_DIR)/man1/`echo $$manpage | sed -e 's:docs/\(.*\)\.pod:\1\.1\.gz:g'`; \
+ for section in 1 5; do \
+ mkdir -p $(MAN_DIR)/man$$section; \
+ for manpage in docs/*.$$section.pod; do \
+ cp docs/`basename $$manpage .pod`.gz $(MAN_DIR)/man$$section; \
+ done; \
done
diff --git a/docs/rabbitmq-multi.pod b/docs/rabbitmq-multi.1.pod
index 82c39116..82c39116 100644
--- a/docs/rabbitmq-multi.pod
+++ b/docs/rabbitmq-multi.1.pod
diff --git a/docs/rabbitmq-server.pod b/docs/rabbitmq-server.1.pod
index e3152b58..00210c8b 100644
--- a/docs/rabbitmq-server.pod
+++ b/docs/rabbitmq-server.1.pod
@@ -20,30 +20,30 @@ process or use rabbitmqctl(1).
=head1 ENVIRONMENT
-B<MNESIA_BASE>
+B<RABBITMQ_MNESIA_BASE>
Defaults to /var/lib/rabbitmq/mnesia. Set this to the directory
where Mnesia database files should be placed.
-B<LOG_BASE>
+B<RABBITMQ_LOG_BASE>
Defaults to /var/log/rabbitmq. Log files generated by the server
will be placed in this directory.
-B<NODENAME>
+B<RABBITMQ_NODENAME>
Defaults to rabbit. This can be useful if you want to run more
- than one node per machine - B<NODENAME> should be unique per
- erlang-node-and-machine combination. See clustering on a single
- machine guide
- at http://www.rabbitmq.com/clustering.html#single-machine for
- details.
+ than one node per machine - B<RABBITMQ_NODENAME> should be unique
+ per erlang-node-and-machine combination. See clustering on a
+ single machine guide at
+ http://www.rabbitmq.com/clustering.html#single-machine for
+ details.
-B<NODE_IP_ADDRESS>
+B<RABBITMQ_NODE_IP_ADDRESS>
Defaults to 0.0.0.0. This can be changed if you only want to bind
to one network interface.
-B<NODE_PORT>
+B<RABBITMQ_NODE_PORT>
Defaults to 5672.
-B<CLUSTER_CONFIG_FILE>
+B<RABBITMQ_CLUSTER_CONFIG_FILE>
Defaults to /etc/default/rabbitmq_cluster.config. If this file is
present it is used by the server to auto-configure a RabbitMQ
cluster.
diff --git a/docs/rabbitmq.5.pod b/docs/rabbitmq.5.pod
new file mode 100644
index 00000000..e6972935
--- /dev/null
+++ b/docs/rabbitmq.5.pod
@@ -0,0 +1,60 @@
+=head1 NAME
+
+/etc/default/rabbitmq - default settings for RabbitMQ AMQP server
+
+=head1 DESCRIPTION
+
+/etc/default/rabbitmq contains variable settings that override the
+defaults built in to the RabbitMQ startup scripts.
+
+The file is interpreted by the system shell, and so should consist of
+a sequence of shell environment variable definitions. Normal shell
+syntax is permitted (since the file is sourced using the shell "."
+operator), including line comments starting with "#".
+
+In order of preference, the startup scripts get their values from the
+environment, from /etc/default/rabbitmq, and finally from the built-in
+default values. For example, for the B<RABBITMQ_NODENAME> setting,
+
+B<RABBITMQ_NODENAME>
+ from the environment is checked first. If it is absent or equal
+ to the empty string, then
+
+B<NODENAME>
+ from /etc/default/rabbitmq is checked next. If it is also absent
+ or set equal to the empty string, then the default value from the
+ startup script is used.
+
+The variable names in /etc/default/rabbitmq are always equal to the
+environment variable names, with the B<RABBITMQ_> prefix removed:
+B<RABBITMQ_NODE_PORT> from the environment becomes B<NODE_PORT> in the
+/etc/default/rabbitmq file, etc.
+
+=head1 EXAMPLES
+
+The following is an example of a complete /etc/default/rabbitmq file
+that overrides the default Erlang node name from "rabbit" to "hare":
+
+ # I am a complete /etc/default/rabbitmq file.
+ # Comment lines start with a hash character.
+ # This is a /bin/sh script file - use ordinary envt var syntax
+ NODENAME=hare
+
+=head1 SEE ALSO
+
+rabbitmq-server(1), rabbitmq-multi(1), rabbitmqctl(1)
+
+=head1 AUTHOR
+
+Originally written by The RabbitMQ Team <info@lshift.net>
+
+=head1 COPYRIGHT
+
+This package, the RabbitMQ server is licensed under the MPL.
+
+If you have any questions regarding licensing, please contact us at
+info@rabbitmq.com.
+
+=head1 REFERENCES
+
+RabbitMQ Web Site: http://www.rabbitmq.com
diff --git a/docs/rabbitmqctl.pod b/docs/rabbitmqctl.1.pod
index 1de31171..34a51d1b 100644
--- a/docs/rabbitmqctl.pod
+++ b/docs/rabbitmqctl.1.pod
@@ -20,13 +20,12 @@ It performs all actions by connecting to one of the broker's nodes.
B<-n> I<node>
default node is C<rabbit@server>, where server is the local host.
- On a host named C<server.example.com>, the node name of the RabbitMQ
- Erlang node will usually be rabbit@server (unless NODENAME has been
- set to some non-default value at broker startup time).
- The output of hostname -s is usually the correct suffix to use
- after the "@" sign. See rabbitmq-server(1) for details of configur-
- ing the RabbitMQ broker.
-
+ On a host named C<server.example.com>, the node name of the
+ RabbitMQ Erlang node will usually be rabbit@server (unless
+ RABBITMQ_NODENAME has been set to some non-default value at broker
+ startup time). The output of hostname -s is usually the correct
+ suffix to use after the "@" sign. See rabbitmq-server(1) for
+ details of configur- ing the RabbitMQ broker.
=head1 COMMANDS
diff --git a/packaging/RPMS/Fedora/rabbitmq-server.spec b/packaging/RPMS/Fedora/rabbitmq-server.spec
index fbee9ef3..471ae31f 100644
--- a/packaging/RPMS/Fedora/rabbitmq-server.spec
+++ b/packaging/RPMS/Fedora/rabbitmq-server.spec
@@ -110,9 +110,7 @@ fi
%defattr(-,root,root,-)
%{_erllibdir}/rabbitmq_server-%{version}/
%{_rabbitbindir}/
-%{_mandir}/man1/rabbitmq-multi.1.gz
-%{_mandir}/man1/rabbitmq-server.1.gz
-%{_mandir}/man1/rabbitmqctl.1.gz
+%{_mandir}/
%{_sbindir}/rabbitmqctl
%dir /var/lib/rabbitmq
%dir /var/log/rabbitmq
diff --git a/packaging/windows/rabbitmq-service.pod b/packaging/windows/rabbitmq-service.pod
index c762826f..7c4d3ef2 100644
--- a/packaging/windows/rabbitmq-service.pod
+++ b/packaging/windows/rabbitmq-service.pod
@@ -63,7 +63,7 @@ type to B<Automatic> using the service control panel.
=head1 ENVIRONMENT
-=head2 SERVICENAME
+=head2 RABBITMQ_SERVICENAME
Defaults to RabbitMQ.
This is the location of log and database directories.
@@ -73,21 +73,20 @@ This is the location of log and database directories.
Defaults to the application data directory of the current user.
This is the location of log and database directories.
-=head2 NODENAME
+=head2 RABBITMQ_NODENAME
-Defaults to "rabbit". This can be useful if you want to run more
-than one node per machine - B<NODENAME> should be unique per
+Defaults to "rabbit". This can be useful if you want to run more than
+one node per machine - B<RABBITMQ_NODENAME> should be unique per
erlang-node-and-machine combination. See clustering on a single
-machine guide
-at L<http://www.rabbitmq.com/clustering.html#single-machine> for
-details.
+machine guide at
+L<http://www.rabbitmq.com/clustering.html#single-machine> for details.
-=head2 NODE_IP_ADDRESS
+=head2 RABBITMQ_NODE_IP_ADDRESS
Defaults to "0.0.0.0". This can be changed if you only want to bind
to one network interface.
-=head2 NODE_PORT
+=head2 RABBITMQ_NODE_PORT
Defaults to 5672.
@@ -102,7 +101,7 @@ If this file is present it is used by the server to
auto-configure a RabbitMQ cluster. See the clustering guide
at L<http://www.rabbitmq.com/clustering.html> for details.
-=head2 CONSOLE_LOG
+=head2 RABBITMQ_CONSOLE_LOG
Set this varable to B<new> or B<reuse> to have the console
output from the server redirected to a file named B<SERVICENAME>.debug
@@ -110,11 +109,12 @@ in the application data directory of the user that installed the service.
Under Vista this will be F<C:\Documents and Settings\User\AppData\username\SERVICENAME>.
Under previous versions of Windows this will be
F<C:\Documents and Settings\username\Application Data\SERVICENAME>.
-If B<CONSOLE_LOG> is set to B<new> then a new file will be created
-each time the service starts. If B<CONSOLE_LOG> is set to B<reuse>
-then the file will be overwritten each time the service starts.
-The default behaviour when B<CONSOLE_LOG> is not set or set to a
-value other than B<new> or B<reuse> is to discard the server output.
+If B<RABBITMQ_CONSOLE_LOG> is set to B<new> then a new file will be
+created each time the service starts. If B<RABBITMQ_CONSOLE_LOG> is
+set to B<reuse> then the file will be overwritten each time the
+service starts. The default behaviour when B<RABBITMQ_CONSOLE_LOG> is
+not set or set to a value other than B<new> or B<reuse> is to discard
+the server output.
=head1 EXAMPLES
diff --git a/scripts/rabbitmq-mnesia-current b/scripts/rabbitmq-mnesia-current
index e69e4976..e7e1118c 100755
--- a/scripts/rabbitmq-mnesia-current
+++ b/scripts/rabbitmq-mnesia-current
@@ -30,27 +30,34 @@
## Contributor(s): ______________________________________.
##
-[ "x" = "x$NODENAME" ] && NODENAME=rabbit
-[ "x" = "x$NODE_IP_ADDRESS" ] && NODE_IP_ADDRESS=0.0.0.0
-[ "x" = "x$NODE_PORT" ] && NODE_PORT=5672
+[ -f /etc/default/rabbitmq ] && . /etc/default/rabbitmq
-CLUSTER_CONFIG_FILE=/etc/default/rabbitmq_cluster.config
+[ "x" = "x$RABBITMQ_CLUSTER_CONFIG_FILE" ] && RABBITMQ_CLUSTER_CONFIG_FILE=${CLUSTER_CONFIG_FILE}
+[ "x" = "x$RABBITMQ_CLUSTER_CONFIG_FILE" ] && RABBITMQ_CLUSTER_CONFIG_FILE=/etc/default/rabbitmq_cluster.config
+[ "x" = "x$RABBITMQ_NODENAME" ] && RABBITMQ_NODENAME=${NODENAME}
+[ "x" = "x$RABBITMQ_NODENAME" ] && RABBITMQ_NODENAME=rabbit
+[ "x" = "x$RABBITMQ_NODE_IP_ADDRESS" ] && RABBITMQ_NODE_IP_ADDRESS=${NODE_IP_ADDRESS}
+[ "x" = "x$RABBITMQ_NODE_IP_ADDRESS" ] && RABBITMQ_NODE_IP_ADDRESS=0.0.0.0
+[ "x" = "x$RABBITMQ_NODE_PORT" ] && RABBITMQ_NODE_PORT=${NODE_PORT}
+[ "x" = "x$RABBITMQ_NODE_PORT" ] && RABBITMQ_NODE_PORT=5672
+[ "x" = "x$RABBITMQ_LOG_BASE" ] && RABBITMQ_LOG_BASE=${LOG_BASE}
+[ "x" = "x$RABBITMQ_LOG_BASE" ] && RABBITMQ_LOG_BASE=/var/log/rabbitmq
+[ "x" = "x$RABBITMQ_MNESIA_BASE" ] && RABBITMQ_MNESIA_BASE=${MNESIA_BASE}
+[ "x" = "x$RABBITMQ_MNESIA_BASE" ] && RABBITMQ_MNESIA_BASE=/var/lib/rabbitmq/mnesia
+[ "x" = "x$RABBITMQ_MNESIA_DIR" ] && RABBITMQ_MNESIA_DIR=${MNESIA_DIR}
+[ "x" = "x$RABBITMQ_MNESIA_DIR" ] && RABBITMQ_MNESIA_DIR=${RABBITMQ_MNESIA_BASE}/${RABBITMQ_NODENAME}
-[ "x" = "x$LOG_BASE" ] && LOG_BASE=/var/log/rabbitmq
-[ "x" = "x$MNESIA_BASE" ] && MNESIA_BASE=/var/lib/rabbitmq/mnesia
-[ "x" = "x$MNESIA_DIR" ] && MNESIA_DIR=${MNESIA_BASE}/${NODENAME}
-
-if [ -f "$CLUSTER_CONFIG_FILE" ]; then
- CLUSTER_CONFIG="-rabbit cluster_config \"$CLUSTER_CONFIG_FILE\""
+if [ -f "$RABBITMQ_CLUSTER_CONFIG_FILE" ]; then
+ RABBITMQ_CLUSTER_CONFIG_OPTION="-rabbit cluster_config \"$RABBITMQ_CLUSTER_CONFIG_FILE\""
else
- CLUSTER_CONFIG=""
+ RABBITMQ_CLUSTER_CONFIG_OPTION=""
fi
exec erl \
-pa "`dirname $0`/../ebin" \
-noshell \
- -sname ${NODENAME} \
+ -sname ${RABBITMQ_NODENAME} \
-eval 'halt(case rabbit_mnesia:schema_current() of true -> 0; false -> 1 end).' \
- -mnesia dir "\"${MNESIA_DIR}\"" \
+ -mnesia dir "\"${RABBITMQ_MNESIA_DIR}\"" \
-kernel error_logger '{file,"'/dev/null'"}' \
- ${CLUSTER_CONFIG}
+ ${RABBITMQ_CLUSTER_CONFIG_OPTION}
diff --git a/scripts/rabbitmq-multi b/scripts/rabbitmq-multi
index 8c889a1a..84985e90 100755
--- a/scripts/rabbitmq-multi
+++ b/scripts/rabbitmq-multi
@@ -30,24 +30,36 @@
## Contributor(s): ______________________________________.
##
-[ "x" = "x$NODENAME" ] && NODENAME=rabbit
-[ "x" = "x$NODE_IP_ADDRESS" ] && NODE_IP_ADDRESS=0.0.0.0
-[ "x" = "x$NODE_PORT" ] && NODE_PORT=5672
+[ -f /etc/default/rabbitmq ] && . /etc/default/rabbitmq
-ERL_ARGS=
-SCRIPT_HOME=$(dirname $0)
+[ "x" = "x$RABBITMQ_NODENAME" ] && RABBITMQ_NODENAME=${NODENAME}
+[ "x" = "x$RABBITMQ_NODENAME" ] && RABBITMQ_NODENAME=rabbit
+[ "x" = "x$RABBITMQ_NODE_IP_ADDRESS" ] && RABBITMQ_NODE_IP_ADDRESS=${NODE_IP_ADDRESS}
+[ "x" = "x$RABBITMQ_NODE_IP_ADDRESS" ] && RABBITMQ_NODE_IP_ADDRESS=0.0.0.0
+[ "x" = "x$RABBITMQ_NODE_PORT" ] && RABBITMQ_NODE_PORT=${NODE_PORT}
+[ "x" = "x$RABBITMQ_NODE_PORT" ] && RABBITMQ_NODE_PORT=5672
+[ "x" = "x$RABBITMQ_SCRIPT_HOME" ] && RABBITMQ_SCRIPT_HOME=${SCRIPT_HOME}
+[ "x" = "x$RABBITMQ_SCRIPT_HOME" ] && RABBITMQ_SCRIPT_HOME=$(dirname $0)
+[ "x" = "x$RABBITMQ_PIDS_FILE" ] && RABBITMQ_PIDS_FILE=${PIDS_FILE}
+[ "x" = "x$RABBITMQ_PIDS_FILE" ] && RABBITMQ_PIDS_FILE=/var/lib/rabbitmq/pids
+[ "x" = "x$RABBITMQ_MULTI_ERL_ARGS" ] && RABBITMQ_MULTI_ERL_ARGS=${MULTI_ERL_ARGS}
+[ "x" = "x$RABBITMQ_MULTI_ERL_ARGS" ] && RABBITMQ_MULTI_ERL_ARGS=
+[ "x" = "x$RABBITMQ_MULTI_START_ARGS" ] && RABBITMQ_MULTI_START_ARGS=${MULTI_START_ARGS}
+[ "x" = "x$RABBITMQ_MULTI_START_ARGS" ] && RABBITMQ_MULTI_START_ARGS=
-[ "x" = "x$PIDS_FILE" ] && PIDS_FILE=/var/lib/rabbitmq/pids
-
-export NODENAME NODE_IP_ADDRESS NODE_PORT SCRIPT_HOME PIDS_FILE
+export \
+ RABBITMQ_NODENAME \
+ RABBITMQ_NODE_IP_ADDRESS \
+ RABBITMQ_NODE_PORT \
+ RABBITMQ_SCRIPT_HOME \
+ RABBITMQ_PIDS_FILE
exec erl \
-pa "`dirname $0`/../ebin" \
-noinput \
-hidden \
- ${ERL_ARGS} \
+ ${RABBITMQ_MULTI_ERL_ARGS} \
-sname rabbitmq_multi$$ \
-s rabbit_multi \
- ${START_ARGS} \
+ ${RABBITMQ_MULTI_START_ARGS} \
-extra "$@"
-
diff --git a/scripts/rabbitmq-multi.bat b/scripts/rabbitmq-multi.bat
index 7899b70d..30f33a5a 100755
--- a/scripts/rabbitmq-multi.bat
+++ b/scripts/rabbitmq-multi.bat
@@ -34,20 +34,20 @@ if "%RABBITMQ_BASE%"=="" (
set RABBITMQ_BASE=%APPDATA%\RabbitMQ
)
-if "%NODENAME%"=="" (
- set NODENAME=rabbit
+if "%RABBITMQ_NODENAME%"=="" (
+ set RABBITMQ_NODENAME=rabbit
)
-if "%NODE_IP_ADDRESS%"=="" (
- set NODE_IP_ADDRESS=0.0.0.0
+if "%RABBITMQ_NODE_IP_ADDRESS%"=="" (
+ set RABBITMQ_NODE_IP_ADDRESS=0.0.0.0
)
-if "%NODE_PORT%"=="" (
- set NODE_PORT=5672
+if "%RABBITMQ_NODE_PORT%"=="" (
+ set RABBITMQ_NODE_PORT=5672
)
-set PIDS_FILE=%RABBITMQ_BASE%\rabbitmq.pids
-set SCRIPT_HOME=%~dp0%
+set RABBITMQ_PIDS_FILE=%RABBITMQ_BASE%\rabbitmq.pids
+set RABBITMQ_SCRIPT_HOME=%~dp0%
if "%ERLANG_HOME%"=="" (
set ERLANG_HOME=%~dp0%..\..\..
diff --git a/scripts/rabbitmq-server b/scripts/rabbitmq-server
index f2971cb3..bb65d64d 100755
--- a/scripts/rabbitmq-server
+++ b/scripts/rabbitmq-server
@@ -30,54 +30,67 @@
## Contributor(s): ______________________________________.
##
-[ "x" = "x$NODENAME" ] && NODENAME=rabbit
-[ "x" = "x$NODE_IP_ADDRESS" ] && NODE_IP_ADDRESS=0.0.0.0
-[ "x" = "x$NODE_PORT" ] && NODE_PORT=5672
+[ -f /etc/default/rabbitmq ] && . /etc/default/rabbitmq
-ERL_ARGS="+K true +A30 \
+[ "x" = "x$RABBITMQ_NODENAME" ] && RABBITMQ_NODENAME=${NODENAME}
+[ "x" = "x$RABBITMQ_NODENAME" ] && RABBITMQ_NODENAME=rabbit
+[ "x" = "x$RABBITMQ_NODE_IP_ADDRESS" ] && RABBITMQ_NODE_IP_ADDRESS=${NODE_IP_ADDRESS}
+[ "x" = "x$RABBITMQ_NODE_IP_ADDRESS" ] && RABBITMQ_NODE_IP_ADDRESS=0.0.0.0
+[ "x" = "x$RABBITMQ_NODE_PORT" ] && RABBITMQ_NODE_PORT=${NODE_PORT}
+[ "x" = "x$RABBITMQ_NODE_PORT" ] && RABBITMQ_NODE_PORT=5672
+[ "x" = "x$RABBITMQ_SERVER_ERL_ARGS" ] && RABBITMQ_ERL_ARGS=${SERVER_ERL_ARGS}
+[ "x" = "x$RABBITMQ_SERVER_ERL_ARGS" ] && RABBITMQ_ERL_ARGS="+K true +A30 \
-kernel inet_default_listen_options [{nodelay,true},{sndbuf,16384},{recbuf,4096}] \
-kernel inet_default_connect_options [{nodelay,true}]"
-
-CLUSTER_CONFIG_FILE=/etc/default/rabbitmq_cluster.config
-
-[ "x" = "x$LOG_BASE" ] && LOG_BASE=/var/log/rabbitmq
-[ "x" = "x$MNESIA_BASE" ] && MNESIA_BASE=/var/lib/rabbitmq/mnesia
-[ "x" = "x$MNESIA_DIR" ] && MNESIA_DIR=${MNESIA_BASE}/${NODENAME}
-[ "x" = "x$NODE_ONLY" ] && START_RABBIT='-noinput -s rabbit'
+[ "x" = "x$RABBITMQ_CLUSTER_CONFIG_FILE" ] && RABBITMQ_CLUSTER_CONFIG_FILE=${CLUSTER_CONFIG_FILE}
+[ "x" = "x$RABBITMQ_CLUSTER_CONFIG_FILE" ] && RABBITMQ_CLUSTER_CONFIG_FILE=/etc/default/rabbitmq_cluster.config
+[ "x" = "x$RABBITMQ_LOG_BASE" ] && RABBITMQ_LOG_BASE=${LOG_BASE}
+[ "x" = "x$RABBITMQ_LOG_BASE" ] && RABBITMQ_LOG_BASE=/var/log/rabbitmq
+[ "x" = "x$RABBITMQ_MNESIA_BASE" ] && RABBITMQ_MNESIA_BASE=${MNESIA_BASE}
+[ "x" = "x$RABBITMQ_MNESIA_BASE" ] && RABBITMQ_MNESIA_BASE=/var/lib/rabbitmq/mnesia
+[ "x" = "x$RABBITMQ_MNESIA_DIR" ] && RABBITMQ_MNESIA_DIR=${MNESIA_DIR}
+[ "x" = "x$RABBITMQ_MNESIA_DIR" ] && RABBITMQ_MNESIA_DIR=${RABBITMQ_MNESIA_BASE}/${RABBITMQ_NODENAME}
+[ "x" = "x$RABBITMQ_SERVER_START_ARGS" ] && RABBITMQ_SERVER_START_ARGS=${SERVER_START_ARGS}
+[ "x" = "x$RABBITMQ_SERVER_START_ARGS" ] && RABBITMQ_SERVER_START_ARGS=
## Log rotation
-LOGS="${LOG_BASE}/${NODENAME}.log"
-SASL_LOGS="${LOG_BASE}/${NODENAME}-sasl.log"
-BACKUP_EXTENSION=".1"
+[ "x" = "x$RABBITMQ_LOGS" ] && RABBITMQ_LOGS=${LOGS}
+[ "x" = "x$RABBITMQ_LOGS" ] && RABBITMQ_LOGS="${RABBITMQ_LOG_BASE}/${RABBITMQ_NODENAME}.log"
+[ "x" = "x$RABBITMQ_SASL_LOGS" ] && RABBITMQ_SASL_LOGS=${SASL_LOGS}
+[ "x" = "x$RABBITMQ_SASL_LOGS" ] && RABBITMQ_SASL_LOGS="${RABBITMQ_LOG_BASE}/${RABBITMQ_NODENAME}-sasl.log"
+[ "x" = "x$RABBITMQ_BACKUP_EXTENSION" ] && RABBITMQ_BACKUP_EXTENSION=${BACKUP_EXTENSION}
+[ "x" = "x$RABBITMQ_BACKUP_EXTENSION" ] && RABBITMQ_BACKUP_EXTENSION=".1"
-[ -f "${LOGS}" ] && cat "${LOGS}" >> "${LOGS}${BACKUP_EXTENSION}"
-[ -f "${SASL_LOGS}" ] && cat "${SASL_LOGS}" >> "${SASL_LOGS}${BACKUP_EXTENSION}"
+[ -f "${RABBITMQ_LOGS}" ] && cat "${RABBITMQ_LOGS}" >> "${RABBITMQ_LOGS}${RABBITMQ_BACKUP_EXTENSION}"
+[ -f "${RABBITMQ_SASL_LOGS}" ] && cat "${RABBITMQ_SASL_LOGS}" >> "${RABBITMQ_SASL_LOGS}${RABBITMQ_BACKUP_EXTENSION}"
-if [ -f "$CLUSTER_CONFIG_FILE" ]; then
- CLUSTER_CONFIG="-rabbit cluster_config \"$CLUSTER_CONFIG_FILE\""
+if [ -f "$RABBITMQ_CLUSTER_CONFIG_FILE" ]; then
+ RABBITMQ_CLUSTER_CONFIG_OPTION="-rabbit cluster_config \"$RABBITMQ_CLUSTER_CONFIG_FILE\""
else
- CLUSTER_CONFIG=""
+ RABBITMQ_CLUSTER_CONFIG_OPTION=""
fi
+RABBITMQ_START_RABBIT=
+[ "x" = "x$RABBITMQ_NODE_ONLY" ] && RABBITMQ_START_RABBIT='-noinput -s rabbit'
+
exec erl \
-pa "`dirname $0`/../ebin" \
- ${START_RABBIT} \
- -sname ${NODENAME} \
+ ${RABBITMQ_START_RABBIT} \
+ -sname ${RABBITMQ_NODENAME} \
-boot start_sasl \
+W w \
- ${ERL_ARGS} \
- -rabbit tcp_listeners '[{"'${NODE_IP_ADDRESS}'", '${NODE_PORT}'}]' \
+ ${RABBITMQ_SERVER_ERL_ARGS} \
+ -rabbit tcp_listeners '[{"'${RABBITMQ_NODE_IP_ADDRESS}'", '${RABBITMQ_NODE_PORT}'}]' \
-sasl errlog_type error \
- -kernel error_logger '{file,"'${LOGS}'"}' \
- -sasl sasl_error_logger '{file,"'${SASL_LOGS}'"}' \
+ -kernel error_logger '{file,"'${RABBITMQ_LOGS}'"}' \
+ -sasl sasl_error_logger '{file,"'${RABBITMQ_SASL_LOGS}'"}' \
-os_mon start_cpu_sup true \
-os_mon start_disksup false \
-os_mon start_memsup false \
-os_mon start_os_sup false \
-os_mon memsup_system_only true \
-os_mon system_memory_high_watermark 0.95 \
- -mnesia dir "\"${MNESIA_DIR}\"" \
- ${CLUSTER_CONFIG} \
- ${RABBIT_ARGS} \
+ -mnesia dir "\"${RABBITMQ_MNESIA_DIR}\"" \
+ ${RABBITMQ_CLUSTER_CONFIG_OPTION} \
+ ${RABBITMQ_SERVER_START_ARGS} \
"$@"
-
diff --git a/scripts/rabbitmq-server.bat b/scripts/rabbitmq-server.bat
index 41d75f81..5b20ef20 100755
--- a/scripts/rabbitmq-server.bat
+++ b/scripts/rabbitmq-server.bat
@@ -34,16 +34,16 @@ if "%RABBITMQ_BASE%"=="" (
set RABBITMQ_BASE=%APPDATA%\RabbitMQ
)
-if "%NODENAME%"=="" (
- set NODENAME=rabbit
+if "%RABBITMQ_NODENAME%"=="" (
+ set RABBITMQ_NODENAME=rabbit
)
-if "%NODE_IP_ADDRESS%"=="" (
- set NODE_IP_ADDRESS=0.0.0.0
+if "%RABBITMQ_NODE_IP_ADDRESS%"=="" (
+ set RABBITMQ_NODE_IP_ADDRESS=0.0.0.0
)
-if "%NODE_PORT%"=="" (
- set NODE_PORT=5672
+if "%RABBITMQ_NODE_PORT%"=="" (
+ set RABBITMQ_NODE_PORT=5672
)
if "%ERLANG_HOME%"=="" (
@@ -64,8 +64,12 @@ if not exist "%ERLANG_HOME%\bin\erl.exe" (
set RABBITMQ_BASE_UNIX=%RABBITMQ_BASE:\=/%
-set MNESIA_BASE=%RABBITMQ_BASE_UNIX%/db
-set LOG_BASE=%RABBITMQ_BASE_UNIX%/log
+if "%RABBITMQ_MNESIA_BASE%"=="" (
+ set RABBITMQ_MNESIA_BASE=%RABBITMQ_BASE_UNIX%/db
+)
+if "%RABBITMQ_LOG_BASE%"=="" (
+ set RABBITMQ_LOG_BASE=%RABBITMQ_BASE_UNIX%/log
+)
rem We save the previous logs in their respective backup
@@ -73,11 +77,11 @@ rem Log management (rotation, filtering based of size...) is left as an exercice
set BACKUP_EXTENSION=.1
-set LOGS="%RABBITMQ_BASE%\log\%NODENAME%.log"
-set SASL_LOGS="%RABBITMQ_BASE%\log\%NODENAME%-sasl.log"
+set LOGS="%RABBITMQ_BASE%\log\%RABBITMQ_NODENAME%.log"
+set SASL_LOGS="%RABBITMQ_BASE%\log\%RABBITMQ_NODENAME%-sasl.log"
-set LOGS_BACKUP="%RABBITMQ_BASE%\log\%NODENAME%.log%BACKUP_EXTENSION%"
-set SASL_LOGS_BAKCUP="%RABBITMQ_BASE%\log\%NODENAME%-sasl.log%BACKUP_EXTENSION%"
+set LOGS_BACKUP="%RABBITMQ_BASE%\log\%RABBITMQ_NODENAME%.log%BACKUP_EXTENSION%"
+set SASL_LOGS_BAKCUP="%RABBITMQ_BASE%\log\%RABBITMQ_NODENAME%-sasl.log%BACKUP_EXTENSION%"
if exist %LOGS% (
type %LOGS% >> %LOGS_BACKUP%
@@ -89,36 +93,39 @@ if exist %SASL_LOGS% (
rem End of log management
-set CLUSTER_CONFIG_FILE=%RABBITMQ_BASE%\rabbitmq_cluster.config
+if "%RABBITMQ_CLUSTER_CONFIG_FILE%"=="" (
+ set RABBITMQ_CLUSTER_CONFIG_FILE=%RABBITMQ_BASE%\rabbitmq_cluster.config
+)
set CLUSTER_CONFIG=
-if not exist "%CLUSTER_CONFIG_FILE%" GOTO L1
-set CLUSTER_CONFIG=-rabbit cluster_config \""%CLUSTER_CONFIG_FILE:\=/%"\"
+if not exist "%RABBITMQ_CLUSTER_CONFIG_FILE%" GOTO L1
+set CLUSTER_CONFIG=-rabbit cluster_config \""%RABBITMQ_CLUSTER_CONFIG_FILE:\=/%"\"
:L1
-set MNESIA_DIR=%MNESIA_BASE%/%NODENAME%-mnesia
+if "%RABBITMQ_MNESIA_DIR%"=="" (
+ set RABBITMQ_MNESIA_DIR=%RABBITMQ_MNESIA_BASE%/%RABBITMQ_NODENAME%-mnesia
+)
"%ERLANG_HOME%\bin\erl.exe" ^
-pa "%~dp0..\ebin" ^
-noinput ^
-boot start_sasl ^
--sname %NODENAME% ^
+-sname %RABBITMQ_NODENAME% ^
-s rabbit ^
+W w ^
+A30 ^
-kernel inet_default_listen_options "[{nodelay, true}, {sndbuf, 16384}, {recbuf, 4096}]" ^
-kernel inet_default_connect_options "[{nodelay, true}]" ^
--rabbit tcp_listeners "[{\"%NODE_IP_ADDRESS%\", %NODE_PORT%}]" ^
--kernel error_logger {file,\""%LOG_BASE%/%NODENAME%.log"\"} ^
+-rabbit tcp_listeners "[{\"%RABBITMQ_NODE_IP_ADDRESS%\", %RABBITMQ_NODE_PORT%}]" ^
+-kernel error_logger {file,\""%RABBITMQ_LOG_BASE%/%RABBITMQ_NODENAME%.log"\"} ^
-sasl errlog_type error ^
--sasl sasl_error_logger {file,\""%LOG_BASE%/%NODENAME%-sasl.log"\"} ^
+-sasl sasl_error_logger {file,\""%RABBITMQ_LOG_BASE%/%RABBITMQ_NODENAME%-sasl.log"\"} ^
-os_mon start_cpu_sup true ^
-os_mon start_disksup false ^
-os_mon start_memsup false ^
-os_mon start_os_sup false ^
-os_mon memsup_system_only true ^
-os_mon system_memory_high_watermark 0.95 ^
--mnesia dir \""%MNESIA_DIR%"\" ^
+-mnesia dir \""%RABBITMQ_MNESIA_DIR%"\" ^
%CLUSTER_CONFIG% ^
-%RABBIT_ARGS% ^
+%RABBITMQ_SERVER_START_ARGS% ^
%*
-
diff --git a/scripts/rabbitmq-service.bat b/scripts/rabbitmq-service.bat
index 6a1804f3..8051ff65 100755
--- a/scripts/rabbitmq-service.bat
+++ b/scripts/rabbitmq-service.bat
@@ -30,24 +30,24 @@ REM
REM Contributor(s): ______________________________________.
REM
-if "%SERVICENAME%"=="" (
- set SERVICENAME=RabbitMQ
+if "%RABBITMQ_SERVICENAME%"=="" (
+ set RABBITMQ_SERVICENAME=RabbitMQ
)
if "%RABBITMQ_BASE%"=="" (
- set RABBITMQ_BASE=%APPDATA%\%SERVICENAME%
+ set RABBITMQ_BASE=%APPDATA%\%RABBITMQ_SERVICENAME%
)
-if "%NODENAME%"=="" (
- set NODENAME=rabbit
+if "%RABBITMQ_NODENAME%"=="" (
+ set RABBITMQ_NODENAME=rabbit
)
-if "%NODE_IP_ADDRESS%"=="" (
- set NODE_IP_ADDRESS=0.0.0.0
+if "%RABBITMQ_NODE_IP_ADDRESS%"=="" (
+ set RABBITMQ_NODE_IP_ADDRESS=0.0.0.0
)
-if "%NODE_PORT%"=="" (
- set NODE_PORT=5672
+if "%RABBITMQ_NODE_PORT%"=="" (
+ set RABBITMQ_NODE_PORT=5672
)
if "%ERLANG_SERVICE_MANAGER_PATH%"=="" (
@@ -56,9 +56,9 @@ if "%ERLANG_SERVICE_MANAGER_PATH%"=="" (
set CONSOLE_FLAG=
set CONSOLE_LOG_VALID=
-for %%i in (new reuse) do if "%%i" == "%CONSOLE_LOG%" set CONSOLE_LOG_VALID=TRUE
+for %%i in (new reuse) do if "%%i" == "%RABBITMQ_CONSOLE_LOG%" set CONSOLE_LOG_VALID=TRUE
if "%CONSOLE_LOG_VALID%" == "TRUE" (
- set CONSOLE_FLAG=-debugtype %CONSOLE_LOG%
+ set CONSOLE_FLAG=-debugtype %RABBITMQ_CONSOLE_LOG%
)
rem *** End of configuration ***
@@ -77,8 +77,13 @@ if not exist "%ERLANG_SERVICE_MANAGER_PATH%\erlsrv.exe" (
rem erlang prefers forwardslash as separator in paths
set RABBITMQ_BASE_UNIX=%RABBITMQ_BASE:\=/%
-set MNESIA_BASE=%RABBITMQ_BASE_UNIX%/db
-set LOG_BASE=%RABBITMQ_BASE_UNIX%/log
+
+if "%RABBITMQ_MNESIA_BASE%"=="" (
+ set RABBITMQ_MNESIA_BASE=%RABBITMQ_BASE_UNIX%/db
+)
+if "%RABBITMQ_LOG_BASE%"=="" (
+ set RABBITMQ_LOG_BASE=%RABBITMQ_BASE_UNIX%/log
+)
rem We save the previous logs in their respective backup
@@ -86,11 +91,11 @@ rem Log management (rotation, filtering based on size...) is left as an exercise
set BACKUP_EXTENSION=.1
-set LOGS="%RABBITMQ_BASE%\log\%NODENAME%.log"
-set SASL_LOGS="%RABBITMQ_BASE%\log\%NODENAME%-sasl.log"
+set LOGS="%RABBITMQ_BASE%\log\%RABBITMQ_NODENAME%.log"
+set SASL_LOGS="%RABBITMQ_BASE%\log\%RABBITMQ_NODENAME%-sasl.log"
-set LOGS_BACKUP="%RABBITMQ_BASE%\log\%NODENAME%.log%BACKUP_EXTENSION%"
-set SASL_LOGS_BACKUP="%RABBITMQ_BASE%\log\%NODENAME%-sasl.log%BACKUP_EXTENSION%"
+set LOGS_BACKUP="%RABBITMQ_BASE%\log\%RABBITMQ_NODENAME%.log%BACKUP_EXTENSION%"
+set SASL_LOGS_BACKUP="%RABBITMQ_BASE%\log\%RABBITMQ_NODENAME%-sasl.log%BACKUP_EXTENSION%"
if exist %LOGS% (
type %LOGS% >> %LOGS_BACKUP%
@@ -102,13 +107,17 @@ if exist %SASL_LOGS% (
rem End of log management
-set CLUSTER_CONFIG_FILE=%RABBITMQ_BASE%\rabbitmq_cluster.config
+if "%RABBITMQ_CLUSTER_CONFIG_FILE%"=="" (
+ set RABBITMQ_CLUSTER_CONFIG_FILE=%RABBITMQ_BASE%\rabbitmq_cluster.config
+)
set CLUSTER_CONFIG=
-if not exist "%CLUSTER_CONFIG_FILE%" GOTO L1
-set CLUSTER_CONFIG=-rabbit cluster_config \""%CLUSTER_CONFIG_FILE:\=/%"\"
+if not exist "%RABBITMQ_CLUSTER_CONFIG_FILE%" GOTO L1
+set CLUSTER_CONFIG=-rabbit cluster_config \""%RABBITMQ_CLUSTER_CONFIG_FILE:\=/%"\"
:L1
-set MNESIA_DIR=%MNESIA_BASE%/%NODENAME%-mnesia
+if "%RABBITMQ_MNESIA_DIR%"=="" (
+ set RABBITMQ_MNESIA_DIR=%RABBITMQ_MNESIA_BASE%/%RABBITMQ_NODENAME%-mnesia
+)
if "%1" == "install" goto INSTALL_SERVICE
@@ -120,16 +129,16 @@ echo Service control usage
echo *********************
echo.
echo %~n0 help - Display this help
-echo %~n0 install - Install the %SERVICENAME% service
-echo %~n0 remove - Remove the %SERVICENAME% service
+echo %~n0 install - Install the %RABBITMQ_SERVICENAME% service
+echo %~n0 remove - Remove the %RABBITMQ_SERVICENAME% service
echo.
echo The following actions can also be accomplished by using
echo Windows Services Management Console (services.msc):
echo.
-echo %~n0 start - Start the %SERVICENAME% service
-echo %~n0 stop - Stop the %SERVICENAME% service
-echo %~n0 disable - Disable the %SERVICENAME% service
-echo %~n0 enable - Enable the %SERVICENAME% service
+echo %~n0 start - Start the %RABBITMQ_SERVICENAME% service
+echo %~n0 stop - Stop the %RABBITMQ_SERVICENAME% service
+echo %~n0 disable - Disable the %RABBITMQ_SERVICENAME% service
+echo %~n0 enable - Enable the %RABBITMQ_SERVICENAME% service
echo.
exit /B
@@ -140,11 +149,11 @@ if not exist "%RABBITMQ_BASE%" (
echo Creating base directory %RABBITMQ_BASE% & md "%RABBITMQ_BASE%"
)
-"%ERLANG_SERVICE_MANAGER_PATH%\erlsrv" list %SERVICENAME% 2>NUL 1>NUL
+"%ERLANG_SERVICE_MANAGER_PATH%\erlsrv" list %RABBITMQ_SERVICENAME% 2>NUL 1>NUL
if errorlevel 1 (
- "%ERLANG_SERVICE_MANAGER_PATH%\erlsrv" add %SERVICENAME%
+ "%ERLANG_SERVICE_MANAGER_PATH%\erlsrv" add %RABBITMQ_SERVICENAME%
) else (
- echo %SERVICENAME% service is already present - only updating service parameters
+ echo %RABBITMQ_SERVICENAME% service is already present - only updating service parameters
)
set RABBIT_EBIN=%~dp0..\ebin
@@ -157,30 +166,30 @@ set ERLANG_SERVICE_ARGUMENTS= ^
+A30 ^
-kernel inet_default_listen_options "[{nodelay,true},{sndbuf,16384},{recbuf,4096}]" ^
-kernel inet_default_connect_options "[{nodelay,true}]" ^
--rabbit tcp_listeners "[{\"%NODE_IP_ADDRESS%\",%NODE_PORT%}]" ^
--kernel error_logger {file,\""%LOG_BASE%/%NODENAME%.log"\"} ^
+-rabbit tcp_listeners "[{\"%RABBITMQ_NODE_IP_ADDRESS%\",%RABBITMQ_NODE_PORT%}]" ^
+-kernel error_logger {file,\""%RABBITMQ_LOG_BASE%/%RABBITMQ_NODENAME%.log"\"} ^
-sasl errlog_type error ^
--sasl sasl_error_logger {file,\""%LOG_BASE%/%NODENAME%-sasl.log"\"} ^
+-sasl sasl_error_logger {file,\""%RABBITMQ_LOG_BASE%/%RABBITMQ_NODENAME%-sasl.log"\"} ^
-os_mon start_cpu_sup true ^
-os_mon start_disksup false ^
-os_mon start_memsup true ^
-os_mon start_os_sup false ^
-os_mon memsup_system_only true ^
-os_mon system_memory_high_watermark 0.95 ^
--mnesia dir \""%MNESIA_DIR%"\" ^
+-mnesia dir \""%RABBITMQ_MNESIA_DIR%"\" ^
%CLUSTER_CONFIG% ^
-%RABBIT_ARGS% ^
+%RABBITMQ_SERVER_START_ARGS% ^
%*
set ERLANG_SERVICE_ARGUMENTS=%ERLANG_SERVICE_ARGUMENTS:\=\\%
set ERLANG_SERVICE_ARGUMENTS=%ERLANG_SERVICE_ARGUMENTS:"=\"%
-"%ERLANG_SERVICE_MANAGER_PATH%\erlsrv" set %SERVICENAME% ^
+"%ERLANG_SERVICE_MANAGER_PATH%\erlsrv" set %RABBITMQ_SERVICENAME% ^
-machine "%ERLANG_SERVICE_MANAGER_PATH%\erl.exe" ^
-env ERL_CRASH_DUMP="%RABBITMQ_BASE_UNIX%/log" ^
-workdir "%RABBITMQ_BASE%" ^
-stopaction "rabbit:stop_and_halt()." ^
--sname %NODENAME% ^
+-sname %RABBITMQ_NODENAME% ^
%CONSOLE_FLAG% ^
-args "%ERLANG_SERVICE_ARGUMENTS%" > NUL
goto END
@@ -188,7 +197,7 @@ goto END
:MODIFY_SERVICE
-"%ERLANG_SERVICE_MANAGER_PATH%\erlsrv" %1 %SERVICENAME%
+"%ERLANG_SERVICE_MANAGER_PATH%\erlsrv" %1 %RABBITMQ_SERVICENAME%
goto END
diff --git a/src/rabbit_control.erl b/src/rabbit_control.erl
index 98d57c31..5d50ed56 100644
--- a/src/rabbit_control.erl
+++ b/src/rabbit_control.erl
@@ -122,11 +122,12 @@ Available commands:
Quiet output mode is selected with the \"-q\" flag. Informational messages
are suppressed when quiet mode is in effect.
-<node> should be the name of the master node of the RabbitMQ cluster. It
-defaults to the node named \"rabbit\" on the local host. On a host named
-\"server.example.com\", the master node will usually be rabbit@server (unless
-NODENAME has been set to some non-default value at broker startup time). The
-output of hostname -s is usually the correct suffix to use after the \"@\" sign.
+<node> should be the name of the master node of the RabbitMQ
+cluster. It defaults to the node named \"rabbit\" on the local
+host. On a host named \"server.example.com\", the master node will
+usually be rabbit@server (unless RABBITMQ_NODENAME has been set to
+some non-default value at broker startup time). The output of hostname
+-s is usually the correct suffix to use after the \"@\" sign.
"),
halt(1).
diff --git a/src/rabbit_multi.erl b/src/rabbit_multi.erl
index e5b59603..7f6eaa8e 100644
--- a/src/rabbit_multi.erl
+++ b/src/rabbit_multi.erl
@@ -90,8 +90,8 @@ action(start_all, [NodeCount], RpcTimeout) ->
io:format("Starting all nodes...~n", []),
N = list_to_integer(NodeCount),
{NodePids, Running} = start_nodes(N, N, [], true,
- getenv("NODENAME"),
- getenv("NODE_PORT"),
+ getenv("RABBITMQ_NODENAME"),
+ getenv("RABBITMQ_NODE_PORT"),
RpcTimeout),
write_pids_file(NodePids),
case Running of
@@ -161,8 +161,8 @@ start_nodes(N, Total, PNodePid, Running,
NodeNameBase, NodePortBase, RpcTimeout).
start_node(NodeName, NodePort, RpcTimeout) ->
- os:putenv("NODENAME", NodeName),
- os:putenv("NODE_PORT", integer_to_list(NodePort)),
+ os:putenv("RABBITMQ_NODENAME", NodeName),
+ os:putenv("RABBITMQ_NODE_PORT", integer_to_list(NodePort)),
Node = rabbit_misc:localnode(list_to_atom(NodeName)),
io:format("Starting node ~s...~n", [Node]),
case rpc:call(Node, os, getpid, []) of
@@ -219,13 +219,13 @@ with_os(Handlers) ->
end.
script_filename() ->
- ScriptHome = getenv("SCRIPT_HOME"),
+ ScriptHome = getenv("RABBITMQ_SCRIPT_HOME"),
ScriptName = with_os(
[{unix , fun () -> "rabbitmq-server" end},
{win32, fun () -> "rabbitmq-server.bat" end}]),
ScriptHome ++ "/" ++ ScriptName ++ " -noinput".
-pids_file() -> getenv("PIDS_FILE").
+pids_file() -> getenv("RABBITMQ_PIDS_FILE").
write_pids_file(Pids) ->
FileName = pids_file(),