Commit 0972c9c1 authored by Johan Oudinet's avatar Johan Oudinet Committed by Thomas Petazzoni
Browse files

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: default avatarJohan Oudinet <johan.oudinet@gmail.com>
Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
parent 7e66b990
Loading
Loading
Loading
Loading
+20 −8
Original line number Diff line number Diff line
@@ -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