فهرست منبع

Merge pull request #6021 from zmstone/fix-boot-handle-vmarg-flags

fix: boot handle vmarg flags
Zaiming (Stone) Shi 4 سال پیش
والد
کامیت
b50f0b67d4
2فایلهای تغییر یافته به همراه26 افزوده شده و 6 حذف شده
  1. 16 6
      bin/emqx
  2. 10 0
      etc/emqx.conf

+ 16 - 6
bin/emqx

@@ -238,12 +238,22 @@ generate_config() {
         sed '/^#/d' "$CUTTLE_GEN_ARG_FILE" | sed '/^$/d' | while IFS='' read -r ARG_LINE || [ -n "$ARG_LINE" ]; do
         sed '/^#/d' "$CUTTLE_GEN_ARG_FILE" | sed '/^$/d' | while IFS='' read -r ARG_LINE || [ -n "$ARG_LINE" ]; do
             ARG_KEY=$(echo "$ARG_LINE" | awk '{$NF="";print}')
             ARG_KEY=$(echo "$ARG_LINE" | awk '{$NF="";print}')
             ARG_VALUE=$(echo "$ARG_LINE" | awk '{print $NF}')
             ARG_VALUE=$(echo "$ARG_LINE" | awk '{print $NF}')
-            TMP_ARG_VALUE=$(grep "^$ARG_KEY" "$TMP_ARG_FILE" | awk '{print $NF}')
-            if [ "$ARG_VALUE" != "$TMP_ARG_VALUE" ] ; then
-                if [ -n "$TMP_ARG_VALUE" ]; then
-                    sh -c "$SED_REPLACE 's/^$ARG_KEY.*$/$ARG_LINE/' $TMP_ARG_FILE"
-                else
-                    echo "$ARG_LINE" >> "$TMP_ARG_FILE"
+            if [ "$ARG_KEY" =  '' ]; then
+                ## for the flags, e.g. -heart -emu_args etc
+                ARG_KEY=$(echo "$ARG_LINE" | awk '{print $1}')
+                ARG_VALUE=''
+                TMP_ARG_KEY=$(grep "^$ARG_KEY" "$TMP_ARG_FILE" | awk '{print $1}')
+                if [ "$TMP_ARG_KEY" = '' ]; then
+                    echo "$ARG_KEY" >> "$TMP_ARG_FILE"
+                fi
+            else
+                TMP_ARG_VALUE=$(grep "^$ARG_KEY" "$TMP_ARG_FILE" | awk '{print $NF}')
+                if [ "$ARG_VALUE" != "$TMP_ARG_VALUE" ] ; then
+                    if [ -n "$TMP_ARG_VALUE" ]; then
+                        sh -c "$SED_REPLACE 's/^$ARG_KEY.*$/$ARG_LINE/' $TMP_ARG_FILE"
+                    else
+                        echo "$ARG_LINE" >> "$TMP_ARG_FILE"
+                    fi
                 fi
                 fi
             fi
             fi
         done
         done

+ 10 - 0
etc/emqx.conf

@@ -199,6 +199,16 @@ node.data_dir = {{ platform_data_dir }}
 ## Heartbeat monitoring of an Erlang runtime system. Comment the line to disable
 ## Heartbeat monitoring of an Erlang runtime system. Comment the line to disable
 ## heartbeat, or set the value as 'on'
 ## heartbeat, or set the value as 'on'
 ##
 ##
+## Turning this on may cause the node to restart if it becomes unresponsive to
+## the heartbeat pings.
+##
+## NOTE: When managed by systemd (or other supervision tools like systemd),
+##       heart will probably only cause EMQ X to stop, but restart or not will
+##       depend on systemd's restart strategy.
+## NOTE: When running in docker, the container will die as soon as the the
+##       heart process kills EMQ X, but restart or not will depend on container
+##       supervision strategy, such as k8s restartPolicy.
+##
 ## Value: on
 ## Value: on
 ##
 ##
 ## vm.args: -heart
 ## vm.args: -heart