#!/bin/sh set -e SELF=$(readlink "$0" || true) if [ -z "$SELF" ]; then SELF="$0"; fi RELEASE_ROOT="$(CDPATH='' cd "$(dirname "$SELF")/.." && pwd -P)" export RELEASE_ROOT export RELEASE_NAME="${RELEASE_NAME:-"emqx"}" export RELEASE_VSN="${RELEASE_VSN:-"$(cut -d' ' -f2 "$RELEASE_ROOT/releases/start_erl.data")"}" export RELEASE_COMMAND="$1" export RELEASE_MODE="${RELEASE_MODE:-"embedded"}" export RELEASE_PROG="${RELEASE_PROG:-"$(echo "$0" | sed 's/.*\///')"}" REL_VSN_DIR="$RELEASE_ROOT/releases/$RELEASE_VSN" . "$REL_VSN_DIR/env.sh" . "$RELEASE_ROOT/releases/emqx_vars" export RELEASE_COOKIE="${RELEASE_COOKIE:-"$(cat "$RELEASE_ROOT/releases/COOKIE")"}" export RELEASE_NODE="${RELEASE_NODE:-"$RELEASE_NAME"}" export RELEASE_TMP="${RELEASE_TMP:-"$RELEASE_ROOT/tmp"}" export RELEASE_VM_ARGS="${RELEASE_VM_ARGS:-"$REL_VSN_DIR/vm.args"}" export RELEASE_REMOTE_VM_ARGS="${RELEASE_REMOTE_VM_ARGS:-"$REL_VSN_DIR/remote.vm.args"}" export RELEASE_BOOT_SCRIPT="${RELEASE_BOOT_SCRIPT:-"start"}" export RELEASE_BOOT_SCRIPT_CLEAN="${RELEASE_BOOT_SCRIPT_CLEAN:-"start_clean"}" export RELEASE_SYS_CONFIG="${RELEASE_SYS_CONFIG:-"$REL_VSN_DIR/sys"}" # defined in emqx_vars export RUNNER_ROOT_DIR export RUNNER_ETC_DIR export ERTS_VSN export SCHEMA_MOD=emqx_conf_schema export CONFIGS_DIR="$RUNNER_DATA_DIR/configs" export MNESIA_DATA_DIR="$RUNNER_DATA_DIR/mnesia" set_name () { IS_BOOT_COMMAND='no' case "$1" in start|start_iex|daemon|daemon_iex) IS_BOOT_COMMAND='yes' ;; esac ## Possible ways to configure emqx node name: ## 1. configure node.name in emqx.conf ## 2. override with environment variable EMQX_NODE_NAME ## Node name is either short-name (without '@'), e.g. 'emqx' ## or long name (with '@') e.g. 'emqx@example.net' or 'emqx@127.0.0.1' NAME="${EMQX_NODE_NAME:-}" if [ -z "$NAME" ]; then if [ "$IS_BOOT_COMMAND" = 'yes' ]; then # for boot commands, inspect emqx.conf for node name NAME="$(call_hocon -s $SCHEMA_MOD -c $RUNNER_ETC_DIR/emqx.conf get node.name | tr -d \")" else # for non-boot commands, inspect vm.