--- 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) :;;