From 6272c0e9011a6b866277f1ceee73d909a39cb61d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Sautret?= Date: Mon, 10 Jul 2023 16:18:06 +0200 Subject: [PATCH] Improve ejabberdctl script Improved handling of ERLANG_OPTS and fixed hanging process when running some ejabberdctl commands as root, such as debug or foreground. --- ejabberdctl.template | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ejabberdctl.template b/ejabberdctl.template index 758a85bca..a549b9393 100755 --- a/ejabberdctl.template +++ b/ejabberdctl.template @@ -95,7 +95,7 @@ $(sed '/^log_rotate_count/!d;s/:[ \t]*\([0-9]*\).*/ \1/;s/^/ /' "$EJABBERD_CONFI $(sed '/^log_burst_limit_count/!d;s/:[ \t]*\([0-9]*\).*/ \1/;s/^/ /' "$EJABBERD_CONFIG_PATH")\ $(sed '/^log_burst_limit_window_time/!d;s/:[ \t]*\([0-9]*[a-z]*\).*/ \1/;s/^/ /' "$EJABBERD_CONFIG_PATH")" [ -n "$EJABBERD_OPTS" ] && EJABBERD_OPTS="-ejabberd $EJABBERD_OPTS" -EJABBERD_OPTS="-mnesia dir \"$SPOOL_DIR\" $MNESIA_OPTIONS $EJABBERD_OPTS -s ejabberd" +EJABBERD_OPTS="$ERLANG_OPTS -mnesia dir \"$SPOOL_DIR\" $MNESIA_OPTIONS $EJABBERD_OPTS -s ejabberd" # export global variables export EJABBERD_CONFIG_PATH @@ -121,19 +121,19 @@ set_dist_client() exec_cmd() { case $EXEC_CMD in - as_install_user) su -s /bin/sh -c '"$0" "$@"' "$INSTALLUSER" -- "$@" ;; + as_install_user) su -s /bin/sh -c 'exec "$0" "$@"' "$INSTALLUSER" -- "$@" ;; as_current_user) "$@" ;; esac } exec_erl() { NODE=$1; shift - exec_cmd "$ERL" ${S:--}name "$NODE" $ERLANG_OPTS "$@" + exec_cmd "$ERL" ${S:--}name "$NODE" "$@" } exec_iex() { NODE=$1; shift - exec_cmd "$IEX" -${S:--}name "$NODE" --erl "$ERLANG_OPTS" "$@" + exec_cmd "$IEX" -${S:--}name "$NODE" "$@" } # usage @@ -321,7 +321,7 @@ case $1 in PEER=${2:-$ERLANG_NODE} [ "$PEER" = "${PEER%.*}" ] && PS="-s" set_dist_client - exec_cmd "$ERL" ${PS:--}name "$(uid ping "$(hostname $PS)")" $ERLANG_OPTS \ + exec_cmd "$ERL" ${PS:--}name "$(uid ping "$(hostname $PS)")" \ -noinput -hidden -eval 'io:format("~p~n",[net_adm:ping('"'$PEER'"')])' \ -s erlang halt -output text ;;