From: Johan Oudinet Date: Wed, 15 Apr 2015 15:39:05 +0000 (+0200) Subject: ejabberd: start the daemon as ejabberd user X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0972c9c10b3aa9466528fb5a0f30f37545b2c876;p=buildroot.git ejabberd: start the daemon as ejabberd user ejabberd.mk creates an ejabberd user but the init script was starting the xmpp server as root user. This patch fixes it by invoking ejabberctl from a "su ejabberd -c" command. Signed-off-by: Johan Oudinet Signed-off-by: Thomas Petazzoni --- diff --git a/package/ejabberd/S50ejabberd b/package/ejabberd/S50ejabberd index 265630712d..925a072ddc 100644 --- a/package/ejabberd/S50ejabberd +++ b/package/ejabberd/S50ejabberd @@ -7,29 +7,41 @@ USER=ejabberd RUNDIR=/var/run/ejabberd mkrundir() { - install -d -o $USER -g $USER $RUNDIR + install -d -o "$USER" -g "$USER" "$RUNDIR" +} + +# Run ejabberdctl as user $USER. +ctl() { + su $USER -c "ejabberdctl $*" } case "$1" in start) - mkrundir - echo "Starting ejabberd..." - ejabberdctl start + mkrundir || exit 1 + echo -n "Starting ejabberd... " + ctl start ;; stop) echo -n "Stopping ejabberd... " - ejabberdctl stop > /dev/null - if [ $? -eq 3 ] || ejabberdctl stopped; then + ctl stop > /dev/null + if [ $? -eq 3 ] || ctl stopped; then echo "OK" else echo "failed" fi ;; - restart|reload) + status) + ctl status + ;; + restart|force-reload) "$0" stop "$0" start ;; + live) + mkrundir || exit 1 + ctl live + ;; *) - echo "Usage: $0 {start|stop|restart}" + echo "Usage: $0 {start|stop|status|restart|force-reload|live}" exit 1 esac