From 387254bcdf5ceb07d14c590f353ea8eb62e72aad Mon Sep 17 00:00:00 2001 From: Badlop Date: Mon, 5 Apr 2021 20:03:33 +0200 Subject: [PATCH] Fix again 9adadc6: started, stopped and *) shouldn't use exec --- ecs/bin/ejabberdctl | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/ecs/bin/ejabberdctl b/ecs/bin/ejabberdctl index 6515d70..33a1dda 100755 --- a/ecs/bin/ejabberdctl +++ b/ecs/bin/ejabberdctl @@ -115,7 +115,7 @@ export CONTRIB_MODULES_CONF_DIR export ERL_LIBS # run command either directly or via su $INSTALLUSER -cmd() +run_cmd() { case $EXEC_CMD in as_install_user) su -s /bin/sh -c '"$0" "$@"' "$INSTALLUSER" -- "$@" ;; @@ -129,6 +129,11 @@ exec_cmd() as_current_user) exec "$@" ;; esac } +run_erl() +{ + NODE=$1; shift + run_cmd "$ERL" ${S:--}name "$NODE" $ERLANG_OPTS "$@" +} exec_erl() { NODE=$1; shift @@ -261,7 +266,7 @@ wait_status() if [ $timeout -eq 0 ] ; then status="$1" else - exec_erl "$(uid ctl)" -hidden -noinput -s ejabberd_ctl \ + run_erl "$(uid ctl)" -hidden -noinput -s ejabberd_ctl -boot start_clean \ -extra "$ERLANG_NODE" $NO_TIMEOUT status > /dev/null status="$?" fi @@ -270,7 +275,7 @@ wait_status() } # ensure we can change current directory to SPOOL_DIR -[ -d "$SPOOL_DIR" ] || cmd mkdir -p "$SPOOL_DIR" +[ -d "$SPOOL_DIR" ] || run_cmd mkdir -p "$SPOOL_DIR" cd "$SPOOL_DIR" || { echo "ERROR: can not access directory $SPOOL_DIR" exit 6 @@ -324,7 +329,7 @@ case $1 in wait_status 3 30 2 && stop_epmd # wait 30x2s before timeout ;; *) - exec_erl "$(uid ctl)" -hidden -noinput -boot start_clean \ + run_erl "$(uid ctl)" -hidden -noinput -boot start_clean \ -s ejabberd_ctl -extra "$ERLANG_NODE" $NO_TIMEOUT "$@" result=$? case $result in