[Linux] Автоматический запуск и рестарт сервера

Тема в разделе "Общие вопросы", создана пользователем Monomizer, 8 фев 2012.

  1. Monomizer

    Monomizer Мимо пробегал Супер-модератор

    Сообщения:
    1.527
    Симпатии:
    201
    Здравствуйте, ОС Debian 6
    Интересует:
    1.) Как можно организовать поэтапный запуск серверов после старта ОС с временным ограничением 20 секунд (Начал запускаться s1 и через 20 секунд запускается второй и т.д)
    2.) Что делать, если сервер "упал,завис" и некому его перезагрузить (тоже скрипт)
    3.) И как можно скриптом организовать плановую перезагрузку серверов например утром в 6 и вечером в 12
    __________

    Сам запускаю сервера через "стартовый" файл server.sh
    За любую помощь буду благодарен !!!
     
  2. maslov

    maslov

    Сообщения:
    47
    Симпатии:
    0
    http://hlmod.ru/forum/showthread.php?t=1780
     
  3. Monomizer

    Monomizer Мимо пробегал Супер-модератор

    Сообщения:
    1.527
    Симпатии:
    201
    Спасибо, в описании написано, что если сервер пустой или боты есть, то только тогда он перезагрузится, да и нужно, чтобы перезагрузка шла 2 раза в день, но и на этом спасибо
     
  4. LEII4A

    LEII4A

    Сообщения:
    631
    Симпатии:
    116
    если ты просматриваешь запущенный сервер через screen можно использовать такую команду, добавив ее в crontab, на время которое тебе нужно, чтобы она выполнялась
    PHP:
    kill `ps -ef | awk '! /awk/ && /dm/ {print $2}'`; cd /servers/css; ./start.sh > /dev/null
    где:
    dm - имя скрина сервера
    cd /servers/css - путь к файлу запуска сервера
    start.sh - сам файл, запускающий сервер
     
    ★Сириус★ и Besenok_Kid нравится это.
  5. Monomizer

    Monomizer Мимо пробегал Супер-модератор

    Сообщения:
    1.527
    Симпатии:
    201
    LEII4A
    crontab"ом никогда не пользовался
    А через screen я серверами не управляю, достаточно запуска и сразу в трей т.к сервер не один
    Из вашего сообщения понял, что сервер можно перезагрузить, если убить процесс и если у меня сервер просматривается через screen -x
     
  6. tiger_by

    tiger_by Гл. Админ SourceGames.RU

    Сообщения:
    629
    Симпатии:
    279
    Первый пункт - в скрипте между запусками выполняй
    PHP:
    sleep 20
    Второй пункт - при краше без ключа norestart сервак сам перезапустится. А если процесс умер, то используй цикл типа
    PHP:
    while true; do
    if 
    ps ax grep {screen name} | grep -v grep > /dev/nullthen
    sleep 30
    ; else
    start.sh
    done
    Третий пункт постом выше.
    З.Ы.: все написал в общем виде.
    Поправил, а то было малость неправильно.
     
    Последнее редактирование: 9 фев 2012
    volkodav1990 volkodav и Besenok_Kid нравится это.
  7. Monomizer

    Monomizer Мимо пробегал Супер-модератор

    Сообщения:
    1.527
    Симпатии:
    201
    Эх, спасиб что отписали, это то что нужно, проблема в том, что я с Linux пока что не на "Ты" и как запустить цикл я понятия не имею, может кто стукануть в ICQ ? (235-40-05)
    Там уже обговорим и отблагодарю
     
  8. LEII4A

    LEII4A

    Сообщения:
    631
    Симпатии:
    116
    эмм, у тебя сервера на декстопном линуксе, раз ты их в трей сворачиваешь?screen очень удобен и управлять можно любым кол.-вом сервов
    да, именно
     
  9. _Lexa_

    _Lexa_

    Сообщения:
    847
    Симпатии:
    259
    Monomizer, Уж лучше бы ты начал изучать сразу консоль и поверь не все так тяжело как кажется
    Всего один запрос в яндексе "crontab" и сразу куча материалов!
     
    tiger_by и BMW M6 нравится это.
  10. Monomizer

    Monomizer Мимо пробегал Супер-модератор

    Сообщения:
    1.527
    Симпатии:
    201
    Большое спасибо всем За помощь. LEII4A уже помог со всем разобраться !!!
     
  11. Vit_ amin

    Vit_ amin BotManager001

    Сообщения:
    1.062
    Симпатии:
    345
    Вопрос может немного не по теме но все же зачем в скрипт запуска сервера добавлять
    sleep 1?
    PS. Прошу прощения если такое уже обсуждалось.
     
  12. Monomizer

    Monomizer Мимо пробегал Супер-модератор

    Сообщения:
    1.527
    Симпатии:
    201
    Vit_ amin
    Лично у меня такой start.sh

    screen -A -m -d -S s1 ./srcds_run -console -game cstrike +maxplayers 40 +map de_tides +fps_max 66 -tickrate 66 +ip 127.0.0.1 -port 27015 +sv_lan 0
    ____
     
  13. ZloyMonah

    ZloyMonah

    Сообщения:
    479
    Симпатии:
    71
    это что за ужас ))) лучшей так ip 0.0.0.0 или свой внешний IP!!
     
    tiger_by нравится это.
  14. _Lexa_

    _Lexa_

    Сообщения:
    847
    Симпатии:
    259
    Не лучше а нужно +ip 0.0.0.0 Запускает на всех интерфейсах сети, не важно pppoe это или локалка, доступ будут иметь все даже если несколько сетевух.
     
  15. tiger_by

    tiger_by Гл. Админ SourceGames.RU

    Сообщения:
    629
    Симпатии:
    279
    Что за люди? Название темы лень было посмотреть. Там же написано АВТОМАТИЧЕСКИЙ ЗАПУСК И РЕСТАРТ. Простой старт тут каждый показать может.
     
  16. Monomizer

    Monomizer Мимо пробегал Супер-модератор

    Сообщения:
    1.527
    Симпатии:
    201
    _Lexa_
    ZloyMonah

    Парни, чё вы сразу какхами кидаетесь)
    Я для примера написал )
     
  17. Vit_ amin

    Vit_ amin BotManager001

    Сообщения:
    1.062
    Симпатии:
    345
    Причем тут строка запуска я спросил зачем в скрипте запуска нужен sleep 1 ?
    Оффтоп
     
  18. ZloyMonah

    ZloyMonah

    Сообщения:
    479
    Симпатии:
    71
    tiger_by, правильно, зависит все от того как он запускает, если использует screen то будет проще, нужно знать как стартует!!!

    Monomizer, нечем не кидаемся ))) просто спрашиваю что бы правильно посоветовать!!
     
  19. tiger_by

    tiger_by Гл. Админ SourceGames.RU

    Сообщения:
    629
    Симпатии:
    279
    ZloyMonah,screen само собой надо использовать.
     
  20. Alcone

    Alcone optizone.ru

    Сообщения:
    319
    Симпатии:
    72
    Автоматический запуск серверов после ребута
    используем crontab
    автозагрузка (под рутом)
    Код:
    @reboot cd /root/SERVER/games/awp/css/ && ./start.sh
    @reboot cd /root/SERVER/games/dd2/css/ && ./start.sh
    @reboot cd /root/SERVER/games/ggdm/css/ && ./start.sh
    @reboot cd /root/SERVER/games/public/css/ && ./start.sh
    @reboot cd /root/SERVER/games/zm/css/ && ./start.sh
    Ребут сервера(под рутом) каждые сутки в 6:30 утра незнаю как будет работать под usr думаю придется использовать sudo
    Код:
    30 06 * * * /sbin/shutdown -r now
     
    Monomizer и Vit_ amin нравится это.