Ru-MaNGOS

Вернуться   Ru-MaNGOS > Документация > Установка MaNGOS

Важная информация

Установка MaNGOS Установка MaNGOS

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.08.2010, 05:14   #1
WildLynx
Пользователь
 
Аватар для WildLynx
 
Регистрация: 18.08.2010
Сообщений: 33
Сказал(а) спасибо: 1
Поблагодарили 1 раз в 1 сообщении
WildLynx На верном пути
Вопрос Сервер Мангос как сервис в Linux

Есть юзер (простой, специально создан для этого), у него в home лежит папка с установленным мангосом(zero)
OS - Mandriva 2010 x64

Вопрос:
Как написать скрипты, что бы mangos-realmd и mangos-world запускались при старте системы как сервис, в правильном порядке, и естественно, после основных системных сервисов типа сети и шоревола?
При этом, от имени простого юзера (возможно модифицированного для этой цели).
Желательно, кончно, что бы плюшки типа
service mangos restart
работали корректно, то есть аккуратная остановка и запуск в правильном проядке.
И, если это возможно, с рестартером, который просто перезапускает сервис в случае крэша. (ну это совсем шикарно было бы конечно)

P.S.

Если это здесь лежит, просьба потыкать меня туда носом, я не нашел. Всё что я встречал - это рестартеры под виндовс, да ещё и с окнами.
WildLynx вне форума   Ответить с цитированием
Старый 09.08.2010, 05:22   #2
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

незнаю почему эо в этом разделе. Так как нет никаких различий в сетвом и стартующем коде для веток мангоса ...
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Vladimir вне форума   Ответить с цитированием
Старый 09.08.2010, 10:48   #3
WildLynx
Пользователь
 
Аватар для WildLynx
 
Регистрация: 18.08.2010
Сообщений: 33
Сказал(а) спасибо: 1
Поблагодарили 1 раз в 1 сообщении
WildLynx На верном пути
Вопрос

Цитата:
Сообщение от Vladimir Посмотреть сообщение
незнаю почему эо в этом разделе. Так как нет никаких различий в сетвом и стартующем коде для веток мангоса ...
Я этого не знал, и подозревал, что полный мангос может иметь отличия, например готовую систему запуска. Ведь кроме 0.5-0.6 и zero, я никакие другие версии у себя не ставил.

Модераторы: Что мне делать? Перенести тему в другой раздел я не могу, снести в мусор тоже. Есть возможность перенести её в более подходящий раздел или пусть уж теперь тут висит?
WildLynx вне форума   Ответить с цитированием
Старый 10.08.2010, 16:38   #4
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

Перенес.
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Vladimir вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Старый 11.08.2010, 10:47   #5
Gen1us2k
RMDC Donator
 
Аватар для Gen1us2k
 
Регистрация: 07.03.2010
Адрес: Кыргызстан
Сообщений: 52
Сказал(а) спасибо: 18
Поблагодарили 45 раз(а) в 11 сообщениях
Gen1us2k Скоро придёт к известности
По умолчанию

хм.. писано на коленке.. будет стартовать и останавливать сервер
Код:
#!/bin/bash
case "$1" in
start) echo -n "Starting server"
sudo -u user ~user/server/bin/mangos.sh
sudo -u user ~user/server/bin/realmd.sh
echo "..."
;;
stop) echo -n "Stoping server"
kill -9 `lsof -i -n -P | grep -e "TCP.*:8085" | head -n1 | awk '{print $2}'`
kill -9 `lsof -i -n -P | grep -e "TCP.*:3724" | head -n1 | awk '{print $2}'`
*) echo "Usage: /etc/init.d/server start|stop"
exit 1
;;
esac
exit 0
где mangos.sh
Код:
#!/bin/sh

CMDNAME='mangos-worldd'
RESTARTCMD='/путь/до/папки/с/сервером/bin/mangos-worldd'
SLEEPTIME=1
while test 1
do
    OUTPUT=`ps ax | grep $CMDNAME | grep -v grep`
   
    if ! echo $OUTPUT | grep $CMDNAME 1>/dev/null ; then
        echo Restarting service...
        $RESTARTCMD
    else
        echo Server Online...
    fi
    sleep $SLEEPTIME
done
realm.sh
Код:
#!/bin/sh

CMDNAME='mangos-realmd'
RESTARTCMD='/путь/до/папки/с/сервером/bin/mangos-realmd'
SLEEPTIME=1
while test 1
do
    OUTPUT=`ps ax | grep $CMDNAME | grep -v grep`
   
    if ! echo $OUTPUT | grep $CMDNAME 1>/dev/null ; then
        echo Restarting service...
        $RESTARTCMD
    else
        echo Server Online...
    fi
    sleep $SLEEPTIME
done
с мандривой не работал. Но думаю что там init скрипты. ложим это дело в /etc/init.d/, называем mangos, даем права на запуск (chmod +x)
и потом пробуем service mangos start.
Если нет, будем думать дальше.
можно запихнуть 2 строчки
Код:
sudo -u user ~user/server/bin/mangos.sh
sudo -u user ~user/server/bin/realmd.sh
в /etc/rc.local
Если оно конечно есть...
UPD: скриптец в /etc/init.d и симлинк с префиксом S99 на него в /etc/rc5.d
Даж с рестартером

Последний раз редактировалось Gen1us2k; 11.08.2010 в 10:48. Причина: Дополнение
Gen1us2k вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Старый 12.08.2010, 09:09   #6
WildLynx
Пользователь
 
Аватар для WildLynx
 
Регистрация: 18.08.2010
Сообщений: 33
Сказал(а) спасибо: 1
Поблагодарили 1 раз в 1 сообщении
WildLynx На верном пути
Хорошо

Спасибо, попробую, когда народ разбежится с сервера.
Вопрос такой:
префих симлинка типа S199 покатит? S99 уже занято и близкие тоже.
Хотя, наверно, не обязательно запускать его совсем последним, можно затесать среди каких нибудь неважных сервисов, которые в конце грузятся, главное после mysql...

Последний раз редактировалось WildLynx; 12.08.2010 в 09:12.
WildLynx вне форума   Ответить с цитированием
Старый 12.08.2010, 09:16   #7
Gen1us2k
RMDC Donator
 
Аватар для Gen1us2k
 
Регистрация: 07.03.2010
Адрес: Кыргызстан
Сообщений: 52
Сказал(а) спасибо: 18
Поблагодарили 45 раз(а) в 11 сообщениях
Gen1us2k Скоро придёт к известности
По умолчанию

S99script_name такой симлинг
можно S98, 97,96,95\
S - стартовать 99 порядок в очереди
Gen1us2k вне форума   Ответить с цитированием
Старый 12.08.2010, 09:41   #8
WildLynx
Пользователь
 
Аватар для WildLynx
 
Регистрация: 18.08.2010
Сообщений: 33
Сказал(а) спасибо: 1
Поблагодарили 1 раз в 1 сообщении
WildLynx На верном пути
По умолчанию

Цитата:
Сообщение от Gen1us2k Посмотреть сообщение
S99script_name такой симлинг
можно S98, 97,96,95\
S - стартовать 99 порядок в очереди
Это я уже понял, меня интересовало, не поймёт ли init номер сервиса за пределами 2х цифр
WildLynx вне форума   Ответить с цитированием
Старый 12.08.2010, 10:14   #9
Gen1us2k
RMDC Donator
 
Аватар для Gen1us2k
 
Регистрация: 07.03.2010
Адрес: Кыргызстан
Сообщений: 52
Сказал(а) спасибо: 18
Поблагодарили 45 раз(а) в 11 сообщениях
Gen1us2k Скоро придёт к известности
По умолчанию

не знаю. надо пробовать
Gen1us2k вне форума   Ответить с цитированием
Старый 12.08.2010, 15:57   #10
WildLynx
Пользователь
 
Аватар для WildLynx
 
Регистрация: 18.08.2010
Сообщений: 33
Сказал(а) спасибо: 1
Поблагодарили 1 раз в 1 сообщении
WildLynx На верном пути
Хорошо

Спасибо, удалось!

Правда, пришлось несколько изменить:

mangos, главгый скрипт для сервиса
добавил ;; перед *) - ошибка синтаксиса?
убрал -9 после kill - для аккуратной остановки с ret code 0
Кстати, зачем такой сложный (через номер порта) способ остановки?

Код:
killall mangos-realmd
хуже?

Код:
#!/bin/bash
case "$1" in
start) echo -n "Starting server"
sudo -b -u mangos /home/mangos/mangoszero/bin/realm.sh
sudo -b -u mangos /home/mangos/mangoszero/bin/mangos.sh
echo "..."
;;
stop) echo -n "Stoping server"
kill  `lsof -i -n -P | grep -e "TCP.*:8085" | head -n1 | awk '{print $2}'`
kill  `lsof -i -n -P | grep -e "TCP.*:3724" | head -n1 | awk '{print $2}'`
;;
*) echo "Usage: /etc/init.d/server start|stop"
exit 1
;;
esac
exit 0
realm.sh
увеличил SLEEPTIME и добавил возможность нормально остановить сервер
иначе главный скрипт был бы не в состоянии его остановить

Код:
#!/bin/sh

CMDNAME='mangos-realmd'
RESTARTCMD='/home/mangos/mangoszero/bin/mangos-realmd'
SLEEPTIME=5
while test 1
do
    OUTPUT=`ps ax | grep $CMDNAME | grep -v grep`

    if ! echo $OUTPUT | grep $CMDNAME 1>/dev/null ; then
        echo Restarting service...
        $RESTARTCMD
        if [ $? = 0 ]; then
    	    echo Normal Exit
    	    exit 
    	fi
    else
        echo Server Online...
    fi
    sleep $SLEEPTIME
done

mangos.sh
аналогично
Код:
#!/bin/sh

CMDNAME='mangos-worldd'
RESTARTCMD='/home/mangos/mangoszero/bin/mangos-worldd'
SLEEPTIME=5
while test 1
do
    OUTPUT=`ps ax | grep $CMDNAME | grep -v grep`

    if ! echo $OUTPUT | grep $CMDNAME 1>/dev/null ; then
        echo Restarting service...
        $RESTARTCMD
        if [ $? = 0 ]; then
    	    echo Normal Exit
    	    exit 
    	fi
    else
        echo Server Online...
    fi
    sleep $SLEEPTIME
done
Пришлось в настройках мангоса прописать все пути как абсолютные
С 3х значным номером возиться не стал, был не занятый S93, его и занял

Нормально?
WildLynx вне форума   Ответить с цитированием
Старый 12.08.2010, 16:22   #11
Gen1us2k
RMDC Donator
 
Аватар для Gen1us2k
 
Регистрация: 07.03.2010
Адрес: Кыргызстан
Сообщений: 52
Сказал(а) спасибо: 18
Поблагодарили 45 раз(а) в 11 сообщениях
Gen1us2k Скоро придёт к известности
По умолчанию

Да нормально.
В главном скрипте просто забыл добавить ;;
Все скрипты писались и не тестировались
у меня в принципе рестартеры нормально работают. Через killall я не тестил. Получаю PID процесса и его грохал
У меня просто стартуются сервер через screen
Код:
screen -AmdS world /home/mangos/servers/pve/bin/mangos.sh
screen -AmdS realm /home/mangos/servers/pve/bin/realm.sh
и я килляю их
Код:
 kill `screen -ls| grep world | awk -F . '{ print $1 }'`
Ну а так, если получилось, замечательно ведь

Ну, раз разобрались, значит хорошо а Решение ваше скиньте в соседний топик
Gen1us2k вне форума   Ответить с цитированием
Ответ

Метки
service mangos linux


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как защитить сервер от WPE Imitator Новичкам 14 07.01.2011 17:29
реальный, полностью рабочий сервер Катаклизма Lcareg Корзина 13 07.01.2011 16:36
Linux IDE Gen1us2k Флудильня 7 15.09.2010 13:05
1 сервер 2 сети feanorco Новичкам 7 23.07.2010 12:29
проблема с входом на мой сервер тантрус Корзина 2 24.05.2010 14:30


Текущее время: 00:28. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot