原文地址:http://blog.csdn.net/zilong_zilong/article/details/53820660
从文章中可以看到,5个shell脚本中的rabbitmqctl、rabbitmq-server、rabbitmq-plugins都include了rabbitmq-env脚本,而rabbitmq-env脚本include了rabbitmq-defaults。rabbitmq-defaults的默认设置,而且rabbitmq-env是rabbmitmq的真正配置shell(并非配置文件)。结合该文章,注释了rabbit 3.6.6的5个文件。
1、rabbitmq-defaults
#!/bin/sh -e
#参数-e表示一旦出错,就退出当前的shell
# RABBITMQ_HOME变量在rabbitmq-env脚本中定义了,rabbitmq-env脚本include了该文件。
SYS_PREFIX=${RABBITMQ_HOME}
### next line will be updated when generating a standalone release
ERL_DIR=
CLEAN_BOOT_FILE=start_clean
SASL_BOOT_FILE=start_sasl
if [ -f "${RABBITMQ_HOME}/erlang.mk" ]; then
# RabbitMQ is executed from its source directory. The plugins
# directory and ERL_LIBS are tuned based on this.
RABBITMQ_DEV_ENV=1
fi
#--------------------------------------------
# 定义了相关文件的路径
# 2个配置文件、日志目录、数据目录、插件目录、启用插件目录
# rabbitmq使用的mnesia的数据库,关于mnesia可以自行百度。Mnesia[m'niːzɪə]
# Mnesia与Erlang编程语言是紧耦合的,使得Erlang几乎成为数据库编程语言
#--------------------------------------------
# 根据本人的喜好,调整了下配置文件的名称
# 调整前:CONF_ENV_FILE=${SYS_PREFIX}/etc/rabbitmq/rabbitmq-env.conf
# 其他的配置文件路径(包括日志、数据等),将在/etc/rabbitmq-env.conf的文件中重新配置.
# 更改的原则尽量少的更改rabbit的5个shell脚本,同时也因为rabbitmq启动命令中无法支持加配置文件
#--------------------------------------------
BOOT_MODULE="rabbit"
CONFIG_FILE=${SYS_PREFIX}/etc/rabbitmq/rabbitmq
LOG_BASE=${SYS_PREFIX}/var/log/rabbitmq
MNESIA_BASE=${SYS_PREFIX}/var/lib/rabbitmq/mnesia
ENABLED_PLUGINS_FILE=${SYS_PREFIX}/etc/rabbitmq/enabled_plugins
PLUGINS_DIR="${RABBITMQ_HOME}/plugins"
CONF_ENV_FILE=${SYS_PREFIX}/etc/rabbitmq-env.conf
##### 调试区 开始 运行请注释下面各行#####
echo "SYS_PREFIX:"${SYS_PREFIX}
echo "CLEAN_BOOT_FILE:"${CLEAN_BOOT_FILE}
echo "SASL_BOOT_FILE:"${SASL_BOOT_FILE}
echo "CONFIG_FILE:"${CONFIG_FILE}
echo "LOG_BASE:"${LOG_BASE}
echo "MNESIA_BASE:"${MNESIA_BASE}
echo "ENABLED_PLUGINS_FILE:"${ENABLED_PLUGINS_FILE}
echo "PLUGINS_DIR:"${PLUGINS_DIR}
echo "CONF_ENV_FILE:"${CONF_ENV_FILE}
##### 调试区 结束 #####
运行 ./rabbitmq-defaults
SYS_PREFIX:/usr/local/rabbitmq CLEAN_BOOT_FILE:start_clean SASL_BOOT_FILE:start_sasl CONFIG_FILE:/usr/local/rabbitmq/etc/rabbitmq.conf LOG_BASE:/usr/local/rabbitmq/var/log/rabbitmq MNESIA_BASE:/usr/local/rabbitmq/var/lib/rabbitmq/mnesia ENABLED_PLUGINS_FILE:/usr/local/rabbitmq/etc/rabbitmq/enabled_plugins PLUGINS_DIR:/usr/local/rabbitmq/plugins CONF_ENV_FILE:/usr/local/rabbitmq/etc/rabbitmq-env.conf
2、rabbitmq-env
#!/bin/sh -e
# 参数-e表示一旦出错,就退出当前的shell
# 防止重复加载该文件,RABBITMQ_ENV_LOADED变量,在脚本中后面定义了。
if [ "$RABBITMQ_ENV_LOADED" = 1 ]; then
return 0;
fi
#--------------------------------------------
# -z表示变量$RABBITMQ_SCRIPTS_DIR是否有值
# 根据运行的脚本路径以及是否有软链,定义了脚本的路径 $SCRIPT_PATH,
# 以及脚本的目录$RABBITMQ_SCRIPTS_DIR
#--------------------------------------------
if [ -z "$RABBITMQ_SCRIPTS_DIR" ]; then
# We set +e here since since our test for "readlink -f" below needs to
# be able to fail.
set +e
# Determine where this script is really located (if this script is
# invoked from another script, this is the location of the caller)
SCRIPT_PATH="$0"
while [ -h "$SCRIPT_PATH" ] ; do
# Determine if readlink -f is supported at all. TODO clean this up.
FULL_PATH=`readlink -f $SCRIPT_PATH 2>/dev/null`
if [ "$?" != "0" ]; then
REL_PATH=`readlink $SCRIPT_PATH`
if expr "$REL_PATH" : '/.*' > /dev/null; then
SCRIPT_PATH="$REL_PATH"
else
SCRIPT_PATH="`dirname "$SCRIPT_PATH"`/$REL_PATH"
fi
else
SCRIPT_PATH=$FULL_PATH
fi
done
set -e
RABBITMQ_SCRIPTS_DIR=`dirname $SCRIPT_PATH`
fi
rmq_realpath() {
local path=$1
if [ -d "$path" ]; then
cd "$path" && pwd
elif [ -f "$path" ]; then
cd "$(dirname "$path")" && echo $(pwd)/$(basename "$path")
else
echo "$path"
fi
}
#--------------------------------------------
# 根据$RABBITMQ_SCRIPTS_DIR,得出RABBITMQ_HOME.
# 本人的环境中,$RABBITMQ_SCRIPTS_DIR=/usr/local/rabbitmq/sbin
# 所以$RABBITMQ_HOME=/usr/local/rabbitmq
#--------------------------------------------
RABBITMQ_HOME="$(rmq_realpath "${RABBITMQ_SCRIPTS_DIR}/..")"
## Set defaults
. ${RABBITMQ_SCRIPTS_DIR}/rabbitmq-defaults
#--------------------------------------------
# Set environment vars RABBITMQ_<变量> to defaults if not set
# 如果相关参数没有配置那么表达式"x" = "x$参数KEY"永远成立,则设置相关参数的默认值
#--------------------------------------------
DEFAULT_SCHEDULER_BIND_TYPE="db"
[ "x" = "x$RABBITMQ_SCHEDULER_BIND_TYPE" ] && RABBITMQ_SCHEDULER_BIND_TYPE=${DEFAULT_SCHEDULER_BIND_TYPE}
DEFAULT_DISTRIBUTION_BUFFER_SIZE=32000
[ "x" = "x$RABBITMQ_DISTRIBUTION_BUFFER_SIZE" ] && RABBITMQ_DISTRIBUTION_BUFFER_SIZE=${DEFAULT_DISTRIBUTION_BUFFER_SIZE}
## Common defaults
SERVER_ERL_ARGS="+P 1048576 +t 5000000 +stbt $RABBITMQ_SCHEDULER_BIND_TYPE +zdbbl $RABBITMQ_DISTRIBUTION_BUFFER_SIZE"
# We save the current value of $RABBITMQ_PID_FILE in case it was set by
# an init script. If $CONF_ENV_FILE overrides it again, we must ignore
# it and warn the user.
#--------------------------------------------
# 如果RABBITMQ_PID_FILE已经存在,而$CONF_ENV_FILE则无法覆盖。
#--------------------------------------------
saved_RABBITMQ_PID_FILE=$RABBITMQ_PID_FILE
## Get configuration variables from the configure environment file
[ "x" = "x$RABBITMQ_CONF_ENV_FILE" ] && RABBITMQ_CONF_ENV_FILE=${CONF_ENV_FILE}
[ -f ${RABBITMQ_CONF_ENV_FILE} ] && . ${RABBITMQ_CONF_ENV_FILE} || true
if [ "$saved_RABBITMQ_PID_FILE" -a \
"$saved_RABBITMQ_PID_FILE" != "$RABBITMQ_PID_FILE" ]; then
echo "WARNING: RABBITMQ_PID_FILE was already set by the init script to:" 1>&2
echo " $saved_RABBITMQ_PID_FILE" 1>&2
echo " The value set in rabbitmq-env.conf is ignored because it" 1>&2
echo " would break the init script." 1>&2
RABBITMQ_PID_FILE="$saved_RABBITMQ_PID_FILE"
fi
[ "x" = "x$RABBITMQ_USE_LONGNAME" ] && RABBITMQ_USE_LONGNAME=${USE_LONGNAME}
if [ "xtrue" = "x$RABBITMQ_USE_LONGNAME" ] ; then
RABBITMQ_NAME_TYPE=-name
[ "x" = "x$HOSTNAME" ] && HOSTNAME=`env hostname -f`
[ "x" = "x$NODENAME" ] && NODENAME=rabbit@${HOSTNAME}
else
RABBITMQ_NAME_TYPE=-sname
[ "x" = "x$HOSTNAME" ] && HOSTNAME=`env hostname`
[ "x" = "x$NODENAME" ] && NODENAME=rabbit@${HOSTNAME%%.*}
fi
##--- Set environment vars RABBITMQ_<var_name> to defaults if not set
rmq_normalize_path() {
local path=$1
# Remove redundant slashes and strip a trailing slash
echo "$path" | sed -e 's#/\{2,\}#/#g' -e 's#/$##'
}
rmq_normalize_path_var() {
local var warning
local prefix="WARNING:"
for var in "$@"; do
local path=$(eval "echo \"\$$var\"")
case "$path" in
*/)
warning=1
echo "$prefix Removing trailing slash from $var" 1>&2
;;
esac
eval "$var=$(rmq_normalize_path "$path")"
if [ "x$warning" = "x1" ]; then
prefix=" "
fi
done
}
rmq_check_if_shared_with_mnesia() {
local var warning
local mnesia_dir=$(rmq_realpath "${RABBITMQ_MNESIA_DIR}")
local prefix="WARNING:"
for var in "$@"; do
local dir=$(eval "echo \"\$$var\"")
case $(rmq_realpath "$dir") in
${mnesia_dir})
warning=1
echo "$prefix $var is equal to RABBITMQ_MNESIA_DIR" 1>&2
;;
${mnesia_dir}/*)
warning=1
echo "$prefix $var is located inside RABBITMQ_MNESIA_DIR" 1>&2
;;
esac
if [ "x$warning" = "x1" ]; then
prefix=" "
fi
done
if [ "x$warning" = "x1" ]; then
echo "$prefix => Auto-clustering will not work ('cluster_nodes' in rabbitmq.config)" 1>&2
fi
}
DEFAULT_NODE_IP_ADDRESS=auto
DEFAULT_NODE_PORT=5672
[ "x" = "x$RABBITMQ_NODE_IP_ADDRESS" ] && RABBITMQ_NODE_IP_ADDRESS=${NODE_IP_ADDRESS}
[ "x" = "x$RABBITMQ_NODE_PORT" ] && RABBITMQ_NODE_PORT=${NODE_PORT}
[ "x" = "x$RABBITMQ_NODE_IP_ADDRESS" ] && [ "x" != "x$RABBITMQ_NODE_PORT" ] && RABBITMQ_NODE_IP_ADDRESS=${DEFAULT_NODE_IP_ADDRESS}
[ "x" != "x$RABBITMQ_NODE_IP_ADDRESS" ] && [ "x" = "x$RABBITMQ_NODE_PORT" ] && RABBITMQ_NODE_PORT=${DEFAULT_NODE_PORT}
[ "x" = "x$RABBITMQ_DIST_PORT" ] && RABBITMQ_DIST_PORT=${DIST_PORT}
[ "x" = "x$RABBITMQ_DIST_PORT" ] && [ "x" = "x$RABBITMQ_NODE_PORT" ] && RABBITMQ_DIST_PORT=$((${DEFAULT_NODE_PORT} + 20000))
[ "x" = "x$RABBITMQ_DIST_PORT" ] && [ "x" != "x$RABBITMQ_NODE_PORT" ] && RABBITMQ_DIST_PORT=$((${RABBITMQ_NODE_PORT} + 20000))
[ "x" = "x$RABBITMQ_NODENAME" ] && RABBITMQ_NODENAME=${NODENAME}
[ "x" = "x$RABBITMQ_IO_THREAD_POOL_SIZE" ] && RABBITMQ_IO_THREAD_POOL_SIZE=${IO_THREAD_POOL_SIZE}
[ "x" = "x$RABBITMQ_SERVER_ERL_ARGS" ] && RABBITMQ_SERVER_ERL_ARGS=${SERVER_ERL_ARGS}
[ "x" = "x$RABBITMQ_CONFIG_FILE" ] && RABBITMQ_CONFIG_FILE=${CONFIG_FILE}
[ "x" = "x$RABBITMQ_LOG_BASE" ] && RABBITMQ_LOG_BASE=${LOG_BASE}
[ "x" = "x$RABBITMQ_MNESIA_BASE" ] && RABBITMQ_MNESIA_BASE=${MNESIA_BASE}
[ "x" = "x$RABBITMQ_SERVER_START_ARGS" ] && RABBITMQ_SERVER_START_ARGS=${SERVER_START_ARGS}
[ "x" = "x$RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS" ] && RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS=${SERVER_ADDITIONAL_ERL_ARGS}
[ "x" = "x$RABBITMQ_SERVER_CODE_PATH" ] && RABBITMQ_SERVER_CODE_PATH=${SERVER_CODE_PATH}
[ "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_IGNORE_SIGINT" ] && RABBITMQ_IGNORE_SIGINT="true"
[ "xtrue" = "x$RABBITMQ_IGNORE_SIGINT" ] && RABBITMQ_IGNORE_SIGINT_FLAG="+B i"
rmq_normalize_path_var \
RABBITMQ_CONFIG_FILE \
RABBITMQ_LOG_BASE \
RABBITMQ_MNESIA_BASE \
RABBITMQ_MNESIA_DIR
[ "x" = "x$RABBITMQ_PID_FILE" ] && RABBITMQ_PID_FILE=${PID_FILE}
[ "x" = "x$RABBITMQ_PID_FILE" ] && RABBITMQ_PID_FILE=${RABBITMQ_MNESIA_DIR}.pid
rmq_normalize_path_var RABBITMQ_PID_FILE
[ "x" = "x$RABBITMQ_BOOT_MODULE" ] && RABBITMQ_BOOT_MODULE=${BOOT_MODULE}
[ "x" = "x$RABBITMQ_PLUGINS_EXPAND_DIR" ] && RABBITMQ_PLUGINS_EXPAND_DIR=${PLUGINS_EXPAND_DIR}
[ "x" = "x$RABBITMQ_PLUGINS_EXPAND_DIR" ] && RABBITMQ_PLUGINS_EXPAND_DIR=${RABBITMQ_MNESIA_BASE}/${RABBITMQ_NODENAME}-plugins-expand
rmq_normalize_path_var RABBITMQ_PLUGINS_EXPAND_DIR
[ "x" != "x$RABBITMQ_ENABLED_PLUGINS_FILE" ] && RABBITMQ_ENABLED_PLUGINS_FILE_source=environment
[ "x" = "x$RABBITMQ_ENABLED_PLUGINS_FILE" ] && RABBITMQ_ENABLED_PLUGINS_FILE=${ENABLED_PLUGINS_FILE}
rmq_normalize_path_var RABBITMQ_ENABLED_PLUGINS_FILE
[ "x" != "x$RABBITMQ_PLUGINS_DIR" ] && RABBITMQ_PLUGINS_DIR_source=environment
[ "x" = "x$RABBITMQ_PLUGINS_DIR" ] && RABBITMQ_PLUGINS_DIR=${PLUGINS_DIR}
rmq_normalize_path_var RABBITMQ_PLUGINS_DIR
## Log rotation
[ "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"
rmq_normalize_path_var \
RABBITMQ_LOGS \
RABBITMQ_SASL_LOGS
[ "x" = "x$RABBITMQ_CTL_ERL_ARGS" ] && RABBITMQ_CTL_ERL_ARGS=${CTL_ERL_ARGS}
# Check if files and directories non-related to Mnesia are configured
# to be in $RABBITMQ_MNESIA_DIR. If this is the case, issue a warning
# because it will prevent auto-clustering from working (the node will be
# considered non-virgin).
rmq_check_if_shared_with_mnesia \
RABBITMQ_CONFIG_FILE \
RABBITMQ_LOG_BASE \
RABBITMQ_PID_FILE \
RABBITMQ_PLUGINS_EXPAND_DIR \
RABBITMQ_ENABLED_PLUGINS_FILE \
RABBITMQ_PLUGINS_DIR \
RABBITMQ_LOGS \
RABBITMQ_SASL_LOGS
##--- End of overridden <var_name> variables
## Development-specific environment.
if [ "${RABBITMQ_DEV_ENV}" ]; then
if [ "$(basename "$0")" = 'rabbitmq-plugins' -a \( \
"$RABBITMQ_PLUGINS_DIR_source" != 'environment' -o \
"$RABBITMQ_ENABLED_PLUGINS_FILE_source" != 'environment' \) ]; then
# We need to query the running node for the plugins directory
# and the "enabled plugins" file.
eval $( (${RABBITMQ_SCRIPTS_DIR}/rabbitmqctl eval \
'{ok, P} = application:get_env(rabbit, plugins_dir),
{ok, E} = application:get_env(rabbit, enabled_plugins_file),
io:format(
"plugins_dir=\"~s\"~n"
"enabled_plugins_file=\"~s\"~n", [P, E]).' \
2>/dev/null | head -n 2) || :)
if [ "${plugins_dir}" -a \
"$RABBITMQ_PLUGINS_DIR_source" != 'environment' ]; then
RABBITMQ_PLUGINS_DIR="${plugins_dir}"
fi
if [ "${enabled_plugins_file}" -a \
"$RABBITMQ_ENABLED_PLUGINS_FILE_source" != 'environment' ]; then
RABBITMQ_ENABLED_PLUGINS_FILE="${enabled_plugins_file}"
fi
fi
if [ -d "${RABBITMQ_PLUGINS_DIR}" ]; then
# RabbitMQ was started with "make run-broker" from its own
# source tree. Take rabbit_common from the plugins directory.
ERL_LIBS="${RABBITMQ_PLUGINS_DIR}:${ERL_LIBS}"
else
# RabbitMQ runs from a testsuite or a plugin. The .ez files are
# not available under RabbitMQ source tree. We need to look at
# $DEPS_DIR and default locations.
if [ "${DEPS_DIR}" -a -d "${DEPS_DIR}/rabbit_common/ebin" ]; then
# $DEPS_DIR is set, and it contains rabbitmq-common, use
# this.
DEPS_DIR_norm="${DEPS_DIR}"
elif [ -f "${RABBITMQ_SCRIPTS_DIR}/../../../erlang.mk" -a \
-d "${RABBITMQ_SCRIPTS_DIR}/../../rabbit_common/ebin" ]; then
# Look at default locations: "deps" subdirectory inside a
# plugin or the Umbrella.
DEPS_DIR_norm="${RABBITMQ_SCRIPTS_DIR}/../.."
fi
DEPS_DIR_norm=$(rmq_realpath "${DEPS_DIR_norm}")
ERL_LIBS="${DEPS_DIR_norm}:${ERL_LIBS}"
fi
else
if [ -d "${RABBITMQ_PLUGINS_DIR}" ]; then
# RabbitMQ was started from its install directory. Take
# rabbit_common from the plugins directory.
ERL_LIBS="${RABBITMQ_PLUGINS_DIR}:${ERL_LIBS}"
fi
fi
ERL_LIBS=${ERL_LIBS%:}
if [ "$ERL_LIBS" ]; then
export ERL_LIBS
fi
RABBITMQ_ENV_LOADED=1
# Since we source this elsewhere, don't accidentally stop execution
true
##### 调试区 开始 运行请注释下面各行#####
echo "SCRIPT_PATH:"${SCRIPT_PATH}
echo "SCRIPT_DIR:"${SCRIPT_DIR}
echo "RABBITMQ_HOME:"${RABBITMQ_HOME}
echo "SERVER_ERL_ARGS:"${SERVER_ERL_ARGS}
echo "CONF_ENV_FILE:"${CONF_ENV_FILE}
echo "RABBITMQ_USE_LONGNAME:"${RABBITMQ_USE_LONGNAME}
echo "HOSTNAME:"${HOSTNAME}
echo "NODENAME:"${NODENAME}
echo "RABBITMQ_NODE_IP_ADDRESS:"${RABBITMQ_NODE_IP_ADDRESS}
echo "RABBITMQ_NODE_PORT:"${RABBITMQ_NODE_PORT}
echo "RABBITMQ_DIST_PORT:"${RABBITMQ_DIST_PORT}
echo "RABBITMQ_NODENAME:"${RABBITMQ_NODENAME}
echo "RABBITMQ_SERVER_ERL_ARGS:"${RABBITMQ_SERVER_ERL_ARGS}
echo "RABBITMQ_CONFIG_FILE:"${RABBITMQ_CONFIG_FILE}
echo "RABBITMQ_LOG_BASE:"${RABBITMQ_LOG_BASE}
echo "RABBITMQ_MNESIA_BASE:"${RABBITMQ_MNESIA_BASE}
echo "RABBITMQ_SERVER_START_ARGS:"${RABBITMQ_SERVER_START_ARGS}
echo "RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS:"${RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS}
echo "RABBITMQ_MNESIA_DIR:"${RABBITMQ_MNESIA_DIR}
echo "RABBITMQ_PID_FILE:"${RABBITMQ_PID_FILE}
echo "RABBITMQ_PLUGINS_EXPAND_DIR:"${RABBITMQ_PLUGINS_EXPAND_DIR}
echo "RABBITMQ_ENABLED_PLUGINS_FILE:"${RABBITMQ_ENABLED_PLUGINS_FILE}
echo "RABBITMQ_PLUGINS_DIR:"${RABBITMQ_PLUGINS_DIR}
echo "RABBITMQ_LOGS:"${RABBITMQ_LOGS}
echo "RABBITMQ_SASL_LOGS:"${RABBITMQ_SASL_LOGS}
echo "RABBITMQ_CTL_ERL_ARGS:"${RABBITMQ_CTL_ERL_ARGS}
##### 调试区 结束 #####
执行 ./rabbitmq-env
SCRIPT_PATH:./rabbitmq-env SCRIPT_DIR: RABBITMQ_HOME:/usr/local/rabbitmq SERVER_ERL_ARGS:+P 1048576 +t 5000000 +stbt db +zdbbl 32000 CONF_ENV_FILE:/usr/local/rabbitmq/etc/rabbitmq/rabbitmq-env.conf RABBITMQ_USE_LONGNAME: HOSTNAME:localhost.localdomain NODENAME:rabbit@localhost RABBITMQ_NODE_IP_ADDRESS: RABBITMQ_NODE_PORT: RABBITMQ_DIST_PORT:25672 RABBITMQ_NODENAME:rabbit@localhost RABBITMQ_SERVER_ERL_ARGS:+P 1048576 +t 5000000 +stbt db +zdbbl 32000 RABBITMQ_CONFIG_FILE:/usr/local/rabbitmq/etc/rabbitmq.conf RABBITMQ_LOG_BASE:/usr/local/rabbitmq/var/log/rabbitmq RABBITMQ_MNESIA_BASE:/usr/local/rabbitmq/var/lib/rabbitmq/mnesia RABBITMQ_SERVER_START_ARGS: RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS: RABBITMQ_MNESIA_DIR:/usr/local/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost RABBITMQ_PID_FILE:/usr/local/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost.pid RABBITMQ_PLUGINS_EXPAND_DIR:/usr/local/rabbitmq/var/lib/rabbitmq/mnesia/rabbit@localhost-plugins-expand RABBITMQ_ENABLED_PLUGINS_FILE:/usr/local/rabbitmq/etc/rabbitmq/enabled_plugins RABBITMQ_PLUGINS_DIR:/usr/local/rabbitmq/plugins RABBITMQ_LOGS:/usr/local/rabbitmq/var/log/rabbitmq/rabbit@localhost.log RABBITMQ_SASL_LOGS:/usr/local/rabbitmq/var/log/rabbitmq/rabbit@localhost-sasl.log RABBITMQ_CTL_ERL_ARGS:
