QUOTE
Имеется:
линукс (слакварь 10 вроде, но точно не знаю), стоящий у провайдера
модуль
Непонял если честно. Да это и неважно
QUOTE
Нужно:
автономная работа сервака
Качаешь архив stand-alone server с биоваров. Распаковать, затем распоковать линуксовые бинарники. Но так как у некоторых из них кривые руки и отсутствие мозгов, то тебе придется скачать еще linux_serverupdate 1.66 если конечно 1.66 версию будешь ставить.
Тогда сервер запустится. В противном случае будет выносить ошибку.
QUOTE
Ну и скрипты к этому делу, чтобы при зависании или чрезмерном лагании сервака авторестарты (неплохо бы к этому делу присовокупить сохранение местоположения персонажа.
Скрипт автоподнятия
CODE
#!/usr/local/bin/perl -W
sub isRunning()
{
$pcount = `pgrep nwserver | wc -l`;
$pcount =~ s/\s//g;
return $pcount;
}
while(1)
{
if(isRunning() eq "0")
{
system("Команда запуска сервера.");
}
sleep(5);
}
Рекомендую юзать скрин в команде запуска, по крайней мере мне удобнее
Скрипт против зависания. Необходимо в nwnplayer.ini поставить 1 напротив опции heartbeat logging.
CODE
#!/bin/sh
LOG_FILE=./logs.0/nwserverLog1.txt
NWN_SERVER_NAME=nwserver
line_count=`cat ${LOG_FILE} | wc -c`
line_c_new=$line_count
while [ 1 ]
do
sleep 20;
line_count=$line_c_new;
line_c_new=`cat ${LOG_FILE} | wc -c`;
if [ $line_count = $line_c_new ]; then
echo "Killing that bitch ${line_count} was, ${line_c_new} became.";
killall -kill $NWN_SERVER_NAME;
else
echo "Not touching yet, ${line_count} was, now ${line_c_new}.";
fi
done
Если лог не изменяется процесс убивается и запускается автоподнятие
Скрипт авторестарта. очень сложная задача. Лично у меня реализовано на бональном убийстве процесса через определенный промежуток времени.. Но при этом в модуле надо сделать пропись экспорта чаров к примеру каждые 3 минуты. Тогда избежишь откатов.
Реализация самого авторестарта может осуществляться как с помощью кроны (редактирование crontab -e ), так и скриптом.
CODE
#!/bin/sh
NWN_SERVER_NAME=nwserver
while [ 1 ]; do
killall -kill $NWN_SERVER_NAME
sleep время_в_секундах;
done