diff options
-rw-r--r-- | package/ejabberd/S50ejabberd | 28 |
1 files changed, 20 insertions, 8 deletions
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 |