|
Установка MaNGOS Установка MaNGOS |
|
Опции темы | Поиск в этой теме | Опции просмотра |
09.08.2010, 05:14 | #1 |
Пользователь
Регистрация: 18.08.2010
Сообщений: 33
Сказал(а) спасибо: 1
Поблагодарили 1 раз в 1 сообщении
|
Сервер Мангос как сервис в Linux
Есть юзер (простой, специально создан для этого), у него в home лежит папка с установленным мангосом(zero)
OS - Mandriva 2010 x64 Вопрос: Как написать скрипты, что бы mangos-realmd и mangos-world запускались при старте системы как сервис, в правильном порядке, и естественно, после основных системных сервисов типа сети и шоревола? При этом, от имени простого юзера (возможно модифицированного для этой цели). Желательно, кончно, что бы плюшки типа service mangos restart работали корректно, то есть аккуратная остановка и запуск в правильном проядке. И, если это возможно, с рестартером, который просто перезапускает сервис в случае крэша. (ну это совсем шикарно было бы конечно) P.S. Если это здесь лежит, просьба потыкать меня туда носом, я не нашел. Всё что я встречал - это рестартеры под виндовс, да ещё и с окнами. |
09.08.2010, 05:22 | #2 |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
незнаю почему эо в этом разделе. Так как нет никаких различий в сетвом и стартующем коде для веток мангоса ...
__________________
Так как устал объяснять знайте ICQ не пользуюсь |
09.08.2010, 10:48 | #3 | |
Пользователь
Регистрация: 18.08.2010
Сообщений: 33
Сказал(а) спасибо: 1
Поблагодарили 1 раз в 1 сообщении
|
Цитата:
Модераторы: Что мне делать? Перенести тему в другой раздел я не могу, снести в мусор тоже. Есть возможность перенести её в более подходящий раздел или пусть уж теперь тут висит? |
|
10.08.2010, 16:38 | #4 |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
Перенес.
__________________
Так как устал объяснять знайте ICQ не пользуюсь |
Пользователь сказал cпасибо: |
11.08.2010, 10:47 | #5 |
RMDC Donator
Регистрация: 07.03.2010
Адрес: Кыргызстан
Сообщений: 52
Сказал(а) спасибо: 18
Поблагодарили 45 раз(а) в 11 сообщениях
|
хм.. писано на коленке.. будет стартовать и останавливать сервер
Код:
#!/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 Код:
#!/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 Код:
#!/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 и потом пробуем service mangos start. Если нет, будем думать дальше. можно запихнуть 2 строчки Код:
sudo -u user ~user/server/bin/mangos.sh sudo -u user ~user/server/bin/realmd.sh Если оно конечно есть... UPD: скриптец в /etc/init.d и симлинк с префиксом S99 на него в /etc/rc5.d Даж с рестартером Последний раз редактировалось Gen1us2k; 11.08.2010 в 10:48. Причина: Дополнение |
Пользователь сказал cпасибо: |
12.08.2010, 09:09 | #6 |
Пользователь
Регистрация: 18.08.2010
Сообщений: 33
Сказал(а) спасибо: 1
Поблагодарили 1 раз в 1 сообщении
|
Спасибо, попробую, когда народ разбежится с сервера.
Вопрос такой: префих симлинка типа S199 покатит? S99 уже занято и близкие тоже. Хотя, наверно, не обязательно запускать его совсем последним, можно затесать среди каких нибудь неважных сервисов, которые в конце грузятся, главное после mysql... Последний раз редактировалось WildLynx; 12.08.2010 в 09:12. |
12.08.2010, 09:16 | #7 |
RMDC Donator
Регистрация: 07.03.2010
Адрес: Кыргызстан
Сообщений: 52
Сказал(а) спасибо: 18
Поблагодарили 45 раз(а) в 11 сообщениях
|
S99script_name такой симлинг
можно S98, 97,96,95\ S - стартовать 99 порядок в очереди |
12.08.2010, 09:41 | #8 |
Пользователь
Регистрация: 18.08.2010
Сообщений: 33
Сказал(а) спасибо: 1
Поблагодарили 1 раз в 1 сообщении
|
|
12.08.2010, 10:14 | #9 |
RMDC Donator
Регистрация: 07.03.2010
Адрес: Кыргызстан
Сообщений: 52
Сказал(а) спасибо: 18
Поблагодарили 45 раз(а) в 11 сообщениях
|
не знаю. надо пробовать
|
12.08.2010, 15:57 | #10 |
Пользователь
Регистрация: 18.08.2010
Сообщений: 33
Сказал(а) спасибо: 1
Поблагодарили 1 раз в 1 сообщении
|
Спасибо, удалось!
Правда, пришлось несколько изменить: 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 увеличил 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, его и занял Нормально? |
12.08.2010, 16:22 | #11 |
RMDC Donator
Регистрация: 07.03.2010
Адрес: Кыргызстан
Сообщений: 52
Сказал(а) спасибо: 18
Поблагодарили 45 раз(а) в 11 сообщениях
|
Да нормально.
В главном скрипте просто забыл добавить ;; Все скрипты писались и не тестировались у меня в принципе рестартеры нормально работают. Через 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 }'` Ну, раз разобрались, значит хорошо а Решение ваше скиньте в соседний топик |
Метки |
service mangos linux |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как защитить сервер от 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 |