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

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

4 страниц V   1 2 3 > »   
Ответить в эту темуОткрыть новую тему
> Поднятие сервера
Blaze
сообщение Mar 22 2006, 18:10
Сообщение #1


Level 12
****

Класс: Вор
Характер: Chaotic Neutral
Раса: Человек
NWN: Маппинг



Вообщем, стэнд элоун ни разу не поднимал, следовательно, прошу вашей помощи, то бишь нуб гайд. (IMG:style_emoticons/kolobok_light/smile.gif)

Имеется:
линукс (слакварь 10 вроде)
модуль

Нужно:
автономная работа сервака

Вопрос:
что нужно скачать
в каком порядке что куда подоткнуть

Ну и скрипты к этому делу, чтобы при зависании или чрезмерном лагании сервака авторестарты (неплохо бы к этому делу присовокупить сохранение местоположения персонажа. (IMG:style_emoticons/kolobok_light/smile.gif)

Кроме доброго слова, отблагодарить ничем не смогу. (IMG:style_emoticons/kolobok_light/smile.gif)

Сообщение отредактировал Blaze - Mar 22 2006, 18:43
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Vanes
сообщение Mar 22 2006, 18:22
Сообщение #2


Level 11
Иконки Групп

Класс: Вор
Характер: Neutral Evil
Раса: Эльф
NWN: Скриптинг [PW]
Validor2



спроси Футсила, у них вроде антиальт под линуксом...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Blaze
сообщение Mar 22 2006, 18:25
Сообщение #3


Level 12
****

Класс: Вор
Характер: Chaotic Neutral
Раса: Человек
NWN: Маппинг



Он активно отмазывается. (IMG:style_emoticons/kolobok_light/wink3.gif) Забыл он всё уже, ничего не помнит.
QUOTE
futsil (20:02:31 22/03/2006)
не помню уже =)


Меня собственно всё по-порядку интересует.. Говорю ж понятия не имею, что и как и 2 года НВН не запускал вообще. (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Richard
сообщение Mar 22 2006, 18:36
Сообщение #4


Level 9
***

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



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


Сообщение отредактировал Richard - Mar 22 2006, 18:37
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Blaze
сообщение Mar 22 2006, 18:46
Сообщение #5


Level 12
****

Класс: Вор
Характер: Chaotic Neutral
Раса: Человек
NWN: Маппинг



А всякое nwnx - это не про нас, я правильно понимаю? (IMG:style_emoticons/kolobok_light/smile.gif)
Завтра буду качать, попробую..
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Richard
сообщение Mar 22 2006, 19:05
Сообщение #6


Level 9
***

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



Если есть shell до тачки.
wget ссылка
Файлы пошли качаться на сервант.
nwnx2 может и про вас, но не про нас (IMG:style_emoticons/kolobok_light/sad.gif) ( У меня на ФриБСД так и не получилось заставить ее работать.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Blaze
сообщение Mar 22 2006, 19:08
Сообщение #7


Level 12
****

Класс: Вор
Характер: Chaotic Neutral
Раса: Человек
NWN: Маппинг



QUOTE
Файлы пошли качаться на сервант.

Если бы всё было так хорошо. (IMG:style_emoticons/kolobok_light/smile.gif) Сервак локальный, качать всё за свой счет. (IMG:style_emoticons/kolobok_light/smile.gif) Ручками, ручками..
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
kreon
сообщение Mar 22 2006, 20:37
Сообщение #8


Level 8
Иконки Групп

Класс: Некромант
Характер: Chaotic Evil
Раса: Дракон
NWN: Скриптинг [PW]



Проверка онлайн ли сервер и авторестарт каждые 4 часа
Необходимо вписать опции
CODE

#!/bin/sh
# (C) kreon 2006
# Autorestart every 4 h
TIME=`date +%s`
while true
do
    NOWTIME=`date +%s`
    if [ `echo $NOWTIME $TIME|awk '{ printf("%d",$1 - $2) }'` -gt 14400 ]
    then
        killall nwserver
        sleep 10
        if [ `ps -A|grep nwserver|cut -d' ' -f1` ]
        then
            killall nwserver -9
            fi
       nohup ./nwserver -options & 2> /dev/null > /dev/null
       TIME=`date +%s`
    fi
    if [ `ps -A|grep nwserver|cut -d' ' -f1` ]
    then
        echo "Server running!"
    else
        nohup ./nwserver -options & 2> /dev/null > /dev/null
        echo "Restrting....!"
    fi
    sleep 600
done


Сообщение отредактировал kreon - Mar 22 2006, 20:40
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Richard
сообщение Mar 23 2006, 05:48
Сообщение #9


Level 9
***

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



У меня написано тоже самое, только без гемороя.

QUOTE

Проверка онлайн ли сервер

Ты наверное имел ввиду запущен ли процесс?
Если да, то лабуда это ибо сервант может быть запущеным, но висеть (IMG:style_emoticons/kolobok_light/smile.gif)

И еще
killall nwserver -9 вроде правильней будет killall -9 nwserver. Да и вроде это некорректное завершение работы процесса, крайне некорректное... Как буд-то взял и стукнул молотком (IMG:style_emoticons/kolobok_light/smile.gif) ))



Сообщение отредактировал Richard - Mar 23 2006, 05:48
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
kreon
сообщение Mar 23 2006, 08:38
Сообщение #10


Level 8
Иконки Групп

Класс: Некромант
Характер: Chaotic Evil
Раса: Дракон
NWN: Скриптинг [PW]



2Richard: а) если ты не заметил, сервер убивается с сигнало 9 ПОСЛЕ того, как его пытаются убить SIGTERM'ом.
Для этого там целый лишний if после killall
б) У тебя 3 скрипта, 1н из них зачем-то на перле.. А у меня 1н (IMG:style_emoticons/kolobok_light/smile.gif)
И вообще, кто-бы говорил про 9й сигнал, когда у тебя самого killall -kill идёт (IMG:style_emoticons/kolobok_light/smile.gif)
А порядок в принципе не важен, я сигнал пишу после процесса, так привычнее...

Сообщение отредактировал kreon - Mar 23 2006, 08:42
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
2_advanced
сообщение Mar 23 2006, 12:02
Сообщение #11


Level 9
Иконки Групп

Класс: Вор
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]



скрипты маздай (IMG:style_emoticons/kolobok_light/smile.gif) софтом всё нужно делать

CODE

каждые 5 минут:
BYTE bData[]="\x4D\x97\x82\x00\x00\x00\x00\x10\x00\x00\x00\x00";
UINT uData = 12;

если ни чего не приходит в ответ, то сервак умер или завис
}


CODE
или так:
    udp_socket_send($sock, "BNES\x00\x14\x00", 6, $error);
    $data = udp_socket_recv($sock, $error);
    if(!$data || substr($data, 0, 4) != "BNER")
        return null;

    udp_socket_send($sock, "\x42\x4E\x58\x49\x00\x14", 6, $error);
    $data = udp_socket_recv($sock, $error);
    if(!$data || substr($data, 0, 4) != "BNXR")
        return null;
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Richard
сообщение Mar 23 2006, 16:26
Сообщение #12


Level 9
***

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



QUOTE(Richard @ Mar 23 2006, 05:48) [snapback]73752[/snapback]

2Richard: а) если ты не заметил, сервер убивается с сигнало 9 ПОСЛЕ того, как его пытаются убить SIGTERM'ом.
Для этого там целый лишний if после killall
б) У тебя 3 скрипта, 1н из них зачем-то на перле.. А у меня 1н
И вообще, кто-бы говорил про 9й сигнал, когда у тебя самого killall -kill идёт
А порядок в принципе не важен, я сигнал пишу после процесса, так привычнее...



...LEX: тут кусочек я удалил. Несодержательный...
Никто не говорит что я великий Линуксоид, но с точки зрения собственного мнения на все происходящее я тебе скажу... Грохнуть один скрипт гораздо легче чем 3, тем более если они на разной основе. Хотя кому надо скрипты грохать, проще сервант (IMG:style_emoticons/kolobok_light/smile.gif)

QUOTE

9 KILL (non-catchable, non-ignorable kill)


QUOTE

killall -- kill processes by name
The killall utility kills processes selected by name, as opposed to the
selection by pid as done by kill(1). By default, it will send a TERM
signal to all processes with a real UID identical to the caller of
killall that match the name procname. The super-user is allowed to kill
any process.


Судя по мануалу разница есть.

Сообщение отредактировал Lex - Mar 23 2006, 20:10
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
2_advanced
сообщение Mar 23 2006, 16:30
Сообщение #13


Level 9
Иконки Групп

Класс: Вор
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]



че у вас мания на линуксоиды? маздай форева © да, и его дырявость прямопропорциональна кривости рук админа (IMG:style_emoticons/kolobok_light/smile.gif)

ps. авторестарт каждые 4 часа идет через убийство процесса? (IMG:style_emoticons/kolobok_light/shok.gif)
а если на чарсейв попадет?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Richard
сообщение Mar 23 2006, 16:42
Сообщение #14


Level 9
***

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



QUOTE
SlavaZ
18:37:36 TERM - аналог нажатия CTRL+C, можно перехватить в программе, а KILL - сигнал на немедленное завершение программы. В саму программу сигнал даже не доходит.



2адв
Никогда не задумывался почему любая уважающая себя организация держит сервер на Линуксе, а не на Винде? Если не задумывался, то советую и кривые руки админов тут не причем.

Сообщение отредактировал Richard - Mar 23 2006, 16:42
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
2_advanced
сообщение Mar 23 2006, 16:53
Сообщение #15


Level 9
Иконки Групп

Класс: Вор
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]



просто админы, сидящие под маздаем полагаются во всем на дядю билла, а не на свои руки (кривые (IMG:style_emoticons/kolobok_light/smile.gif) )
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Vanes
сообщение Mar 23 2006, 18:20
Сообщение #16


Level 11
Иконки Групп

Класс: Вор
Характер: Neutral Evil
Раса: Эльф
NWN: Скриптинг [PW]
Validor2



QUOTE
Никогда не задумывался почему любая уважающая себя организация держит сервер на Линуксе, а не на Винде? Если не задумывался, то советую и кривые руки админов тут не причем.

не факт... у нас сервак на винде стоит, и после написания нужного софта проблем со стабильностью не замечалось...
а еще можно вспомнить сервак Темплара - самый стабильный сервак за всю историю НВН, который неделями без рестартов не падал (и это было еще до СОУ) - тоже на винде стоял...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Richard
сообщение Mar 23 2006, 19:13
Сообщение #17


Level 9
***

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



Не рассказывай мне про Темплар (IMG:style_emoticons/kolobok_light/smile.gif) Я там ДМом был (IMG:style_emoticons/kolobok_light/smile.gif)
Я знаю что такое виндовый сервак и знаю что значит его положить. Ну впрочем я свою точку зрения не навязываю.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
2_advanced
сообщение Mar 23 2006, 19:15
Сообщение #18


Level 9
Иконки Групп

Класс: Вор
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]



я за винду т.к.
1. ставишь свой обработчик ошибок и избавляешься от большинства причин падений
2. многопоточность через 1 АПИ - CreateThread -> нетормозящая прокся между клиентом/сервером для обработки пакетов
3. рестарт сервера через SendMessage - автосохр. чаров и т.п.
4. опыт работы с маздаем больше (да, я нуб (IMG:style_emoticons/kolobok_light/prankster2.gif) )
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Vanes
сообщение Mar 23 2006, 19:46
Сообщение #19


Level 11
Иконки Групп

Класс: Вор
Характер: Neutral Evil
Раса: Эльф
NWN: Скриптинг [PW]
Validor2



QUOTE
Не рассказывай мне про Темплар (IMG:style_emoticons/kolobok_light/smile.gif) Я там ДМом был

странно... даже волгоградцы тебя не помнят...
хотя был на моей памяти какой то ДМ из москвы, нуб РПшник - не ты случаем ???

QUOTE
Я знаю что такое виндовый сервак и знаю что значит его положить. Ну впрочем я свою точку зрения не навязываю.

если ты был на Темпларе, то думаю не будешь отрицать, что там сервак неделями не падал ??? если его специально не роняли конечно...

Сообщение отредактировал Vanes - Mar 23 2006, 19:47
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Richard
сообщение Mar 23 2006, 20:03
Сообщение #20


Level 9
***

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



Vanes
Мы с моим друганом там по очереди ДМили под одним ником. Я впрочем там не квестил. Квестил он. Я больше мир изучал. DM_Sephirot. Но мы не из Москвы(IMG:style_emoticons/kolobok_light/smile.gif) Хотя хз что он там Админу наплел тогда. Но по крайней мере это наверное было лучше чем ничего.

ПС: На счет Креона, так я его уважаю, потому что человек отстаивает свое мнение. Рабочий спор. Думаю все ок (IMG:style_emoticons/kolobok_light/smile.gif) У меня по крайней мере притензий нет. Каждый делает свой сервер как удобнее ему.

Сообщение отредактировал Lex - Mar 23 2006, 20:11
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Mar 23 2006, 20:31
Сообщение #21


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Господа, к слову:
"3.2. Переход во время дискуссий границ вежливости, грубые, нецензурные выражения и оскорбления в любой форме"
Правила форума, запреты. Наказание вплоть до 14 дней отключки.

Я чутка почистил тему, но это все очень не хорошо. Не переходите на личности. Пока устные замечания.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Richard
сообщение Mar 23 2006, 20:50
Сообщение #22


Level 9
***

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



Ок. Сорри, не хотел хамить. Болше не повторится.
По теме, я выложил наработки НД с целтю помочь автору... Ибо он испытывает трудности с пониманием неких тонкостей на мой взгляд, хотя опять же я не спец. Чем богаты тем и рады.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
virusman
сообщение Mar 24 2006, 11:41
Сообщение #23


Level 17
Иконки Групп

Класс: Волшебник
Характер: Neutral Good
Раса: Человек
NWN: Скриптинг [PW]
Axistown SR 1.9
NWNX



Сначала скрипт посылает сигнал TERM, потом, если через 10 секунд не помогло - KILL.
TERM просит программу завершится. KILL убивает процесс без каких-либо вопросов.
Утилиты kill и killall различаются в основном только по аргументу: первый посылает сигнал процессу по PID, другой - по имени.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Richard
сообщение Mar 24 2006, 11:54
Сообщение #24


Level 9
***

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



Вопрос стоял в том есть ли отличие между killall -kill и killall -9 ?
Проанализировав мануал, я понял что есть.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
virusman
сообщение Mar 24 2006, 14:01
Сообщение #25


Level 17
Иконки Групп

Класс: Волшебник
Характер: Neutral Good
Раса: Человек
NWN: Скриптинг [PW]
Axistown SR 1.9
NWNX



killall -kill и killall -9 = что в лоб, что по лбу. (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

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

 



Текстовая версия Сейчас: 28th March 2024 - 19:09