Browse Source

fix(bin/emqx): check app status in bash script

Prior to this change, 'true=emqx:is_running().' Erlang assertion
is evaluated before 'emqx start' command gives up waiting.

The Erlang assertion would result in a error level crash log
which can be confusing.

This commit changes the equals to 'true' check to bash script
instead.

Also deleted the log message which advised users to report an
issue in case timeout happens, because daemon mode is almost only
used in tests
Zaiming (Stone) Shi 2 years atrás
parent
commit
9bc732784e
1 changed files with 3 additions and 2 deletions
  1. 3 2
      bin/emqx

+ 3 - 2
bin/emqx

@@ -988,6 +988,7 @@ fi
 
 diagnose_boot_failure_and_die() {
     local ps_line
+    local app_status
     ps_line="$(find_emqx_process)"
     if [ -z "$ps_line" ]; then
         echo "Find more information in the latest log file: ${EMQX_LOG_DIR}/erlang.log.*"
@@ -999,9 +1000,9 @@ diagnose_boot_failure_and_die() {
         pipe_shutdown
         exit 2
     fi
-    if ! relx_nodetool 'eval' 'true = emqx:is_running()' > /dev/null; then
+    app_status="$(relx_nodetool 'eval' 'emqx:is_running()')"
+    if [ "$app_status" != 'true' ]; then
         logerr "$NAME node is started, but failed to complete the boot sequence in time."
-        echo "Please collect the logs in ${EMQX_LOG_DIR} and report a bug to EMQX team at https://github.com/emqx/emqx/issues/new/choose"
         pipe_shutdown
         exit 3
     fi