From bee767158da6240f13cf9d56e857d72ec3b7dbf1 Mon Sep 17 00:00:00 2001 From: Arno B Date: Thu, 29 Oct 2015 19:39:21 +0100 Subject: [PATCH] feat(ejabberdctl): Foreground option for docker Docker needs services to run in foreground. --- ejabberdctl.template | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/ejabberdctl.template b/ejabberdctl.template index a4327ac9f..147bff97e 100755 --- a/ejabberdctl.template +++ b/ejabberdctl.template @@ -228,6 +228,21 @@ iexlive() --erl \"$ERLANG_OPTS\" --erl $ARGS --erl \"$@\"" } +# start server in the foreground +foreground() +{ + check_start + $EXEC_CMD "$ERL \ + $NAME $ERLANG_NODE \ + -noinput \ + -pa $EJABBERD_EBIN_PATH \ + $MNESIA_OPTS \ + $KERNEL_OPTS \ + $EJABBERD_OPTS \ + -s ejabberd \ + $ERLANG_OPTS $ARGS \"$@\"" +} + debugwarning() { if [ "$EJABBERD_BYPASS_WARNINGS" != "true" ] ; then @@ -300,11 +315,12 @@ help() { echo "" echo "Commands to start an ejabberd node:" - echo " start Start an ejabberd node in server mode" - echo " debug Attach an interactive Erlang shell to a running ejabberd node" - echo " iexdebug Attach an interactive Elixir shell to a running ejabberd node" - echo " live Start an ejabberd node in live (interactive) mode" - echo " iexlive Start an ejabberd node in live (interactive) mode, within an Elixir shell" + echo " start Start an ejabberd node in server mode" + echo " debug Attach an interactive Erlang shell to a running ejabberd node" + echo " iexdebug Attach an interactive Elixir shell to a running ejabberd node" + echo " live Start an ejabberd node in live (interactive) mode" + echo " iexlive Start an ejabberd node in live (interactive) mode, within an Elixir shell" + echo " foreground Start an ejabberd node in server mode (attached)" echo "" echo "Optional parameters when starting an ejabberd node:" echo " --config-dir dir Config ejabberd: $ETC_DIR" @@ -468,6 +484,7 @@ case $ARGS in ' iexdebug') iexdebug;; ' live') live;; ' iexlive') iexlive;; + ' foreground') foreground;; ' ping'*) ping ${ARGS# ping};; ' etop') etop;; ' started') wait_for_status 0 30 2;; # wait 30x2s before timeout