Ставклю, чего нет
Код
# apt-get install zlib1g-dev build-essential liblua5.1-dev subversion
Добавляем юзверя, от имени и из папки которого будет работать хаб
Код
# useradd -m -s /bin/bash dchub
# passwd dchub 12345678
От имени юзверя dchub
Код
$ nano rushub_svn_make.sh
В файл пишу следующее
Код
#!/bin/sh
# Перед сборкой установите: build-essential liblua5.1-dev subversion если у Вас не установлены,
# Установить можно командой для Ubuntu/Debian :
# sudo apt-get install build-essential liblua5.1-dev subversion
# --------- #
# Настройки
# --------- #
# папка где будет собираться & копироваться результат сборки,
# по умолчанию создается в домашней директори пользователя папке rushub
DIRHUB=~/rushub
# Скачиваем исходники с svn
svn co https://rushub.svn.sourceforge.net/svnroot/rushub/trunk/ $DIRHUB/tmp
# Собираем tinyxml
cd $DIRHUB/tmp/rushub/src/tinyxml
make
# Собираем непосредственно rushub
cd $DIRHUB/tmp/rushub/src
make
# Собираем lua plugin
cp --remove-destination $DIRHUB/tmp/rushub/src/Plugin.h $DIRHUB/tmp/lua_plugin/src/
cp -r --remove-destination $DIRHUB/tmp/rushub/src/tinyxml $DIRHUB/tmp/lua_plugin/src/
cd $DIRHUB/tmp/lua_plugin/src/
make
# Перемещаем собранное в папку rushub
mv -f $DIRHUB/tmp/rushub/src/RusHub ~/rushub/
mkdir $DIRHUB/plugins/
mv -f $DIRHUB/tmp/lua_plugin/src/lua.so ~/rushub/plugins/
# Удаляем исходники
rm -rf $DIRHUB/tmp
# Запускаем RusHub, для создания настроек. И вырубаем.
$DIRHUB/RusHub -d
kill -15 $(pidof $DIRHUB/RusHub)
Из под рута даю файлу права за запуск
Код
# chmod +x /home/dchub/rushub_svn_make.sh
Запускаю файл от имени dchub
Код
$ ./rushub_svn_make.sh
Пока хаб собирается, через root создаю файл для автозапуска хаба
Код
# nano /etc/init.d/rushub
Пишу в него
Код
#!/bin/sh
### BEGIN INIT INFO
# Provides: rushub
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by rushub.
### END INIT INFO
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME="RusHub"
USER="dchub"
PATH_DAEMON="/home/$USER/rushub"
DAEMON="$PATH_DAEMON/$NAME"
PATH_DAEMON_CFG="$PATH_DAEMON/RusHub.xml"
PIDF="$PATH_DAEMON/rushub.pid"
ARGS="-c $PATH_DAEMON_CFG"
start() {
echo -n "Запуск $NAME: "
start-stop-daemon --start --chuid $USER --make-pidfile "$PIDF" --pidfile "$PIDF" --name $NAME --background --startas $DAEMON -- $ARGS
echo "готово."
}
stop() {
echo -n "Остановка $NAME: "
start-stop-daemon --chuid $USER --stop --pidfile "$PIDF" --name $NAME --retry=TERM/5/KILL/10
rm "$PIDF"
echo "готово."
}
restart() {
stop
sleep 2
start
}
if [ ! -x "$DAEMON" ]
then
echo "отсутствует файл для запуска $DAEMON"
exit 0
fi
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
status)
if [ -f "$PIDF" ];
then
PID=$(cat $PIDF)
if [ `ps auwx|grep $NAME|grep $PID|grep -v -c grep` = 1 ]
then
echo "процесс $NAME работает [pid: $PID]."
exit 0
fi
echo "процесс $NAME не запущен."
exit 3
fi
echo "процесс $NAME не запущен."
exit 3
;;
*)
echo "Использование {start|status|stop|restart}"
exit 1
;;
esac
exit 0
Разрешаю его запуск
Код
# chmod +x /etc/init.d/rushub
Автозапуска хаба при старте
Код
# update-rc.d -f rushub defaults
Настраиваю iptables, перенаправление порта
Код
# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 411 -j REDIRECT --to-ports 4111
Сохраняю правила в свой файл
Код
# iptables-save > /etc/iptables.up.rules
Автозагрузка правила, открываю
Код
# nano /etc/network/interfaces
Ищу строчку "iface eth0 dhcp" и после неё дописываю
Код
pre-up iptables-restore < /etc/iptables.up.rules