Город Мастеров
IPB

Здравствуйте, гость ( Вход | Регистрация )

> Скрипт автоподнятия НВН сервера, Linux
Richard
сообщение May 6 2005, 08:21
Сообщение #1


Level 9
***

Класс: Клерик
Характер: Chaotic Evil
Раса: Человек



Собственно, вот сам скрипт.

CODE

#!/bin/sh
LOGFILE=$HOME/nwnrun.log
while :; do

cd /games/nwn/arena
rm *.core

./arena.sh

date >> $LOGFILE
echo "NWN ARENA NWNX2 started" >> $LOGFILE

sleep 15

done &



Затем, создаешь файл arena.sh в котором прописываешь строчку автоподнятия сервера. Интересно только есть ли разница если сервер работает в screen?

Вобщем, переработал я скрипт вроде как и вот что получилось:


CODE

#!/bin/sh
LOGFILE=$HOME/nwnrun.log
while :; do

/usr/compat/linux/usr/games/nwn/arena
rm *.core

./arena.sh

date >> $LOGFILE
echo "NWN ARENA NWNX2 started" >> $LOGFILE

sleep 15

done &




В файле arena.sh прописал команду поднятия...

Залил все это на фтп... обозвал файл со скриптом server.txt и сделал его исполняемым командой chmod a+x server.txt

Вроде все правильно, но скрипт не работает...
Подскажите пожалуйста в чем ошибка? :xz:


Добавлено в [mergetime]1115360297[/mergetime]
Но с другой стороны, я почему то думал что скрипт автозапуска, это скрипт проверяющий наличие процесса сервера, и в случае его отсутсвия запускающий его снова. Нельзя ли откомментить строки скрипта? Я вижу что он протоколирует в лог файл дату и строчку "NWN ARENA NWNX2 started" , и в процессе работы запустит скрипт arena.sh, перед этим удалив файлы *.core (для чего?). Но вот при каком условии тело цикла запустится я так и не понял.

while :; do
Между while и do должно быть условие, а :; это что?

Сообщение отредактировал Richard - May 6 2005, 09:17
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
 
Открыть новую тему
Ответов
slavaz
сообщение May 11 2005, 16:16
Сообщение #2


Пингвиноид
Иконки Групп

Класс: Обыватель
Характер: True Neutral
Раса: Человек



Будущим поколениям nwn-линуксоидов на заметку :-)

В результате продолжительных переговоров и в чём-то кровопролитных (для сервера) попыток был устаканен скрипт для запуска nwn-сервера под Линуксом.
Вначале требования:
1) В скрипте обязательно указать путь к nwn-серверу и путь, где скрипт будет вести свой лог-файл.
2) ни к в коем случае не набирать (копировать) скрипт под Windows - эта ОС большая любительница добавить в конец строки <LF>, который *NIX системами переваривается как обычный символ (соответственно, не находит Ваш любимый nwn-сервер с <LF> в конце имени).

Ну и сам скрипт nwn_server.run:
CODE
#!/bin/sh

LOGFILE=~/nwn_server_run.log
(
   NWN_DIR=/path/to/nwn
   NWN_EXE="screen -A -m -d -S nwn ./nwserver -module MODULE_NAME"
   cd $NWN_DIR
   echo `date`": Script started"
       $NWN_EXE
   while [ true ]; do
       sleep 5
       is_server_run=`ps aux | grep -v grep | grep -c nwserver`
       if [ $is_server_run -eq 0 ]; then
           echo `date`": Ops!.. NWN-server crashed. Restart"
           rm -f *.core
           $NWN_EXE
       fi
   done
) >>$LOGFILE 2>&1 &

выполнить скрипт:
CODE
chmod a+x nwn_server.run
./nwn_server.run

либо обе команды с полным путём
CODE
chmod a+x /path/to/nwn_server.run
/path/to/nwn_server.run


Сообщение отредактировал slavaz - May 16 2005, 16:27
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

Сообщений в этой теме


Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 17th June 2025 - 09:29