--- src/ejabberdctl.template.fix_user 2008-08-27 13:37:52.000000000 +0400 +++ src/ejabberdctl.template 2008-10-02 09:24:52.000000000 +0400 @@ -9,13 +9,14 @@ # define default environment variables NODE=ejabberd -HOST=localhost +HOST=`hostname -s` 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"` @@ -139,11 +140,13 @@ # common control function ctl () { - $ERL \ + ERL_COMMAND="$ERL \ $NAME ejabberdctl \ -noinput \ -pa $EJABBERD_EBIN \ - -s ejabberd_ctl -extra $ERLANG_NODE $@ + -s ejabberd_ctl -extra $ERLANG_NODE $@ \ + " + /sbin/runuser -s /bin/bash - ejabberd -c "$ERL_COMMAND" result=$? case $result in 0) :;;