--- src/ejabberdctl.template 2009-04-01 19:23:51.000000000 +0400
+++ src/ejabberdctl.template 2009-08-25 23:06:19.258685929 +0400
@@ -9,13 +9,14 @@
# define default environment variables
NODE=ejabberd
-HOST=localhost
+HOST=`hostname -s 2>/dev/null || echo "localhost"`
ERLANG_NODE=$NODE@$HOST
ERL=@erl@
-ROOTDIR=@rootdir@
+ROOTDIR=
+MAINDIR=
EJABBERD_CONFIG_PATH=$ROOTDIR/etc/ejabberd/ejabberd.cfg
LOGS_DIR=$ROOTDIR/var/log/ejabberd/
-EJABBERD_DB=$ROOTDIR/var/lib/ejabberd/db/$NODE
+EJABBERD_DB=$ROOTDIR/var/lib/ejabberd/spool
# read custom configuration
CONFIG=$ROOTDIR/etc/ejabberd/ejabberdctl.cfg
@@ -43,10 +44,10 @@
ERLANG_OPTS="+K $POLL -smp $SMP +P $ERL_PROCESSES"
# define additional environment variables
-EJABBERD_EBIN=$ROOTDIR/var/lib/ejabberd/ebin
-EJABBERD_MSGS_PATH=$ROOTDIR/var/lib/ejabberd/priv/msgs
-EJABBERD_SO_PATH=$ROOTDIR/var/lib/ejabberd/priv/lib
-EJABBERD_BIN_PATH=$ROOTDIR/var/lib/ejabberd/priv/bin
+EJABBERD_EBIN=$MAINDIR/ebin
+EJABBERD_MSGS_PATH=$MAINDIR/priv/msgs
+EJABBERD_SO_PATH=$MAINDIR/priv/lib
+EJABBERD_BIN_PATH=$MAINDIR/priv/bin
EJABBERD_LOG_PATH=$LOGS_DIR/ejabberd.log
SASL_LOG_PATH=$LOGS_DIR/sasl.log
DATETIME=`date "+%Y%m%d-%H%M%S"`
@@ -75,14 +76,16 @@
# start server
start ()
{
- $ERL \
+ ERL_COMMAND="$ERL \
$NAME $ERLANG_NODE \
-noinput -detached \
-pa $EJABBERD_EBIN \
- -mnesia dir "\"$EJABBERD_DB\"" \
+ -mnesia dir \\\"$EJABBERD_DB\\\" \
-s ejabberd \
- -sasl sasl_error_logger \{file,\"$SASL_LOG_PATH\"\} \
- $ERLANG_OPTS $ARGS "$@"
+ -sasl sasl_error_logger \{file,\\\"$SASL_LOG_PATH\\\"\} \
+ $ERLANG_OPTS $ARGS "$@" \
+ "
+ /sbin/runuser -s /bin/bash -p ejabberd -c "$ERL_COMMAND"
}
# attach to server
@@ -105,7 +108,7 @@
read foo
echo ""
$ERL \
- $NAME ${NODE}debug \
+ $NAME debug-${ERLANG_NODE} \
-remsh $ERLANG_NODE \
$ERLANG_OPTS $ARGS "$@"
}
@@ -139,11 +142,13 @@
# common control function
ctl ()
{
- $ERL \
- $NAME ejabberdctl \
+ ERL_COMMAND="$ERL \
+ $NAME ctl-${ERLANG_NODE} \
-noinput \
-pa $EJABBERD_EBIN \
- -s ejabberd_ctl -extra $ERLANG_NODE $@
+ -s ejabberd_ctl -extra $ERLANG_NODE $@ \
+ "
+ /sbin/runuser -s /bin/bash -p ejabberd -c "$ERL_COMMAND"
result=$?
case $result in
0) :;;