summaryrefslogtreecommitdiff
path: root/scripts/rabbitmq-server
diff options
context:
space:
mode:
authorMichael Klishin <michael@novemberain.com>2018-08-25 00:39:46 +0300
committerGitHub <noreply@github.com>2018-08-25 00:39:46 +0300
commit526ec377a74008633e10c9e71e20e103a9fd93e7 (patch)
treeb1250f1117483c759429cfb169cf1bd0cc141c8d /scripts/rabbitmq-server
parent79f943a7fedd7617f52a19f1734d1d3246a86ecf (diff)
parent34bba9bcece3070ab0c92c259e3ee37b1d7e7224 (diff)
downloadrabbitmq-server-git-526ec377a74008633e10c9e71e20e103a9fd93e7.tar.gz
Merge pull request #1671 from rabbitmq/config_files_check
Config files check
Diffstat (limited to 'scripts/rabbitmq-server')
-rwxr-xr-xscripts/rabbitmq-server157
1 files changed, 109 insertions, 48 deletions
diff --git a/scripts/rabbitmq-server b/scripts/rabbitmq-server
index f8b868c039..08cfb28cf7 100755
--- a/scripts/rabbitmq-server
+++ b/scripts/rabbitmq-server
@@ -62,13 +62,117 @@ RABBITMQ_EBIN_ROOT="${RABBITMQ_HOME}/ebin"
[ "$NOTIFY_SOCKET" ] && RUNNING_UNDER_SYSTEMD=true
-set +e
+if [ ! -d ${RABBITMQ_SCHEMA_DIR} ]; then
+ mkdir -p "${RABBITMQ_SCHEMA_DIR}"
+fi
+
+if [ ! -d ${RABBITMQ_GENERATED_CONFIG_DIR} ]; then
+ mkdir -p "${RABBITMQ_GENERATED_CONFIG_DIR}"
+fi
+
+if [ ! -f "${RABBITMQ_SCHEMA_DIR}/rabbit.schema" ]; then
+ cp "${RABBITMQ_HOME}/priv/schema/rabbit.schema" "${RABBITMQ_SCHEMA_DIR}"
+fi
+
+get_noex() {
+ if [ "x" = "x${1}" ]; then
+ echo ""
+ else
+ local BASENAME=$(basename $1)
+ local DIRNAME=$(dirname $1)
+ if [ "x." = "x${DIRNAME}" ]; then
+ echo "${BASENAME%.*}"
+ else
+ echo "${DIRNAME}/${BASENAME%.*}"
+ fi
+ fi
+}
+
+# Check that advanced config file has the .config extension
+# Add .config extension if it's empty
+
+RABBITMQ_ADVANCED_CONFIG_FILE_NOEX=$(get_noex ${RABBITMQ_ADVANCED_CONFIG_FILE})
+if [ "${RABBITMQ_ADVANCED_CONFIG_FILE_NOEX}.config" = "${RABBITMQ_ADVANCED_CONFIG_FILE}" \
+ -o "${RABBITMQ_ADVANCED_CONFIG_FILE_NOEX}" = "${RABBITMQ_ADVANCED_CONFIG_FILE}" ]; then
+ RABBITMQ_ADVANCED_CONFIG_FILE="${RABBITMQ_ADVANCED_CONFIG_FILE_NOEX}.config"
+fi
+
+
+RABBITMQ_CONFIG_FILE_NOEX=$(get_noex ${RABBITMQ_CONFIG_FILE})
+# Extension is not specified.
+# Determine config type from file
+
+if [ "${RABBITMQ_CONFIG_FILE_NOEX}" = "${RABBITMQ_CONFIG_FILE}" ]; then
+ if [ -f "${RABBITMQ_CONFIG_FILE_NOEX}.config" ]; then
+ if [ -f "${RABBITMQ_CONFIG_FILE_NOEX}.conf" ]; then
+ # Both files exist. Print a warning
+ echo "WARNING: Both old (.config) and new (.conf) format config files exist."
+ echo "WARNING: Using the old format config file: ${RABBITMQ_CONFIG_FILE_NOEX}.config"
+ echo "WARNING: Please update your config files to the new format and remove the old file"
+ fi
+ RABBITMQ_CONFIG_FILE="${RABBITMQ_CONFIG_FILE_NOEX}.config"
+ elif [ -f "${RABBITMQ_CONFIG_FILE_NOEX}.conf" ]; then
+ RABBITMQ_CONFIG_FILE="${RABBITMQ_CONFIG_FILE_NOEX}.conf"
+ else
+ if [ -f ${RABBITMQ_ADVANCED_CONFIG_FILE} ]; then
+ echo "WARNING: Using RABBITMQ_ADVANCED_CONFIG_FILE: ${RABBITMQ_ADVANCED_CONFIG_FILE}"
+ fi
+ # No config file exist. Use advanced config for -config arg.
+ RABBITMQ_CONFIG_ARG_FILE="${RABBITMQ_ADVANCED_CONFIG_FILE}"
+ RABBITMQ_CONFIG_FILE=""
+ fi
+fi
+
+# Set the -config argument.
+# The -config argument should not have extension.
+# the file should exist
+# the file should be a valid erlang term file
+
+# Config file extension is .config
+if [ "${RABBITMQ_CONFIG_FILE_NOEX}.config" = "${RABBITMQ_CONFIG_FILE}" ]; then
+ RABBITMQ_CONFIG_ARG_FILE="${RABBITMQ_CONFIG_FILE}"
+# Config file extension is .conf
+elif [ "${RABBITMQ_CONFIG_FILE_NOEX}.conf" = "${RABBITMQ_CONFIG_FILE}" ]; then
+ RABBITMQ_CONFIG_ARG_FILE="${RABBITMQ_ADVANCED_CONFIG_FILE}"
+elif [ "x" != "x${RABBITMQ_CONFIG_FILE}" \
+ -a "${RABBITMQ_CONFIG_FILE_NOEX}" != "${RABBITMQ_CONFIG_FILE}" ]; then
+ # Config file has an extension, but it's neither .conf or .config
+ echo "ERROR: Wrong extension for RABBITMQ_CONFIG_FILE: ${RABBITMQ_CONFIG_FILE}"
+ echo "ERROR: extension should be either .conf or .config"
+ exit 1
+fi
+
+RABBITMQ_CONFIG_ARG_FILE_NOEX=$(get_noex ${RABBITMQ_CONFIG_ARG_FILE})
+
+if [ "${RABBITMQ_CONFIG_ARG_FILE_NOEX}.config" != "${RABBITMQ_CONFIG_ARG_FILE}" ]; then
+ if [ "${RABBITMQ_CONFIG_ARG_FILE}" = "${RABBITMQ_ADVANCED_CONFIG_FILE}" ]; then
+ echo "ERROR: Wrong extension for RABBITMQ_ADVANCED_CONFIG_FILE: ${RABBITMQ_ADVANCED_CONFIG_FILE}"
+ echo "ERROR: extension should be .config"
+ exit 1
+ else
+ # We should never got here, but still there should be some explanation
+ echo "ERROR: Wrong extension for ${RABBITMQ_CONFIG_ARG_FILE}"
+ echo "ERROR: extension should be .config"
+ exit 1
+ fi
+fi
-RABBITMQ_ADVANCED_CONFIG_FILE_NOEX="${RABBITMQ_ADVANCED_CONFIG_FILE%.*}"
-if [ "${RABBITMQ_ADVANCED_CONFIG_FILE_NOEX}.config" = "${RABBITMQ_ADVANCED_CONFIG_FILE}" ]; then
- RABBITMQ_ADVANCED_CONFIG_FILE="${RABBITMQ_ADVANCED_CONFIG_FILE_NOEX}"
+# Set -config if the file exists
+if [ -f "${RABBITMQ_CONFIG_ARG_FILE}" ]; then
+ RABBITMQ_CONFIG_ARG="-config ${RABBITMQ_CONFIG_ARG_FILE_NOEX}"
fi
+# Set -conf and other generated config parameters
+if [ "${RABBITMQ_CONFIG_FILE_NOEX}.conf" = "${RABBITMQ_CONFIG_FILE}" ]; then
+ RABBITMQ_GENERATED_CONFIG_ARG="-conf ${RABBITMQ_CONFIG_FILE} \
+ -conf_dir ${RABBITMQ_GENERATED_CONFIG_DIR} \
+ -conf_script_dir `dirname $0` \
+ -conf_schema_dir ${RABBITMQ_SCHEMA_DIR}
+ -conf_advanced ${RABBITMQ_ADVANCED_CONFIG_FILE}"
+fi
+
+set +e
+
# `net_kernel:start/1` will fail in `longnames` mode when erlang is
# unable to determine FQDN of a node (with a dot in it). But `erl`
# itself has some magic that still allow it to start when you
@@ -108,18 +212,6 @@ else
exit ${PRELAUNCH_RESULT}
fi
-if [ ! -d ${RABBITMQ_SCHEMA_DIR} ]; then
- mkdir -p "${RABBITMQ_SCHEMA_DIR}"
-fi
-
-if [ ! -d ${RABBITMQ_GENERATED_CONFIG_DIR} ]; then
- mkdir -p "${RABBITMQ_GENERATED_CONFIG_DIR}"
-fi
-
-if [ ! -f "${RABBITMQ_SCHEMA_DIR}/rabbit.schema" ]; then
- cp "${RABBITMQ_HOME}/priv/schema/rabbit.schema" "${RABBITMQ_SCHEMA_DIR}"
-fi
-
# The default allocation strategy RabbitMQ is using was introduced
# in Erlang/OTP 20.2.3. Earlier Erlang versions fail to start with
# this configuration. We therefore need to ensure that erl accepts
@@ -141,38 +233,6 @@ fi
set -e
-RABBITMQ_CONFIG_FILE_NOEX="${RABBITMQ_CONFIG_FILE%.*}"
-
-if [ "${RABBITMQ_CONFIG_FILE_NOEX}.config" = "${RABBITMQ_CONFIG_FILE}" ]; then
- if [ -f "${RABBITMQ_CONFIG_FILE}" ]; then
- RABBITMQ_CONFIG_ARG="-config ${RABBITMQ_CONFIG_FILE_NOEX}"
- fi
-elif [ "${RABBITMQ_CONFIG_FILE_NOEX}.conf" = "${RABBITMQ_CONFIG_FILE}" ]; then
- RABBITMQ_CONFIG_ARG="-conf ${RABBITMQ_CONFIG_FILE_NOEX} \
- -conf_dir ${RABBITMQ_GENERATED_CONFIG_DIR} \
- -conf_script_dir `dirname $0` \
- -conf_schema_dir ${RABBITMQ_SCHEMA_DIR}"
- if [ -f "${RABBITMQ_ADVANCED_CONFIG_FILE}.config" ]; then
- RABBITMQ_CONFIG_ARG="${RABBITMQ_CONFIG_ARG} \
- -conf_advanced ${RABBITMQ_ADVANCED_CONFIG_FILE} \
- -config ${RABBITMQ_ADVANCED_CONFIG_FILE}"
- fi
-else
- if [ -f "${RABBITMQ_CONFIG_FILE}.config" ]; then
- RABBITMQ_CONFIG_ARG="-config ${RABBITMQ_CONFIG_FILE}"
- elif [ -f "${RABBITMQ_CONFIG_FILE}.conf" ]; then
- RABBITMQ_CONFIG_ARG="-conf ${RABBITMQ_CONFIG_FILE} \
- -conf_dir ${RABBITMQ_GENERATED_CONFIG_DIR} \
- -conf_script_dir `dirname $0` \
- -conf_schema_dir ${RABBITMQ_SCHEMA_DIR}"
- if [ -f "${RABBITMQ_ADVANCED_CONFIG_FILE}.config" ]; then
- RABBITMQ_CONFIG_ARG="${RABBITMQ_CONFIG_ARG} \
- -conf_advanced ${RABBITMQ_ADVANCED_CONFIG_FILE} \
- -config ${RABBITMQ_ADVANCED_CONFIG_FILE}"
- fi
- fi
-fi
-
RABBITMQ_LISTEN_ARG=
[ "x" != "x$RABBITMQ_NODE_PORT" ] && [ "x" != "x$RABBITMQ_NODE_IP_ADDRESS" ] && RABBITMQ_LISTEN_ARG="-rabbit tcp_listeners [{\""${RABBITMQ_NODE_IP_ADDRESS}"\","${RABBITMQ_NODE_PORT}"}]"
@@ -230,6 +290,7 @@ start_rabbitmq_server() {
${RABBITMQ_NAME_TYPE} ${RABBITMQ_NODENAME} \
-boot "${SASL_BOOT_FILE}" \
${RABBITMQ_CONFIG_ARG} \
+ ${RABBITMQ_GENERATED_CONFIG_ARG} \
+W w \
+A ${RABBITMQ_IO_THREAD_POOL_SIZE} \
${RABBITMQ_DEFAULT_ALLOC_ARGS} \