Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Туториал UPD Запуск сервера через screen в фоновом режиме

Тема в разделе "Руководства, инструкции, утилиты", создана пользователем wailorman, 7 янв 2013.

  1. Автор темы
    wailorman

    wailorman Активный участник Пользователь

    Баллы:
    93
    Skype:
    serg1524
    Имя в Minecraft:
    wailorman
    Скорее всего, на нашем форуме уже есть подобная тема, но я не думаю, что моя статья будет лишней, т.к. я ее собирал с десятков форумов в гугле.
    Итак, с помощью этой статьи будет возможен автоматический рестарт сервера без Cron (спасибо плагину Флумастера) и с постоянным доступом в консоль сервера. Думаю, это позволит многим разработчикам сделать ЛК для управления сервером.
    1. Создаем файл для запуска сервера run.sh со следующим содержимым:
      Код:
      while true
      do
      java -Xincgc100M -Xmx100M -jar minecraft_server.jar
      done
    2. Выставляем ему права на запуск
      Код:
      chmod +x run.sh
    3. Создаем сессию screen
      Код:
      screen -S minecraft -d -m
    4. Запускаем сервер
      Код:
      screen -S minecraft -X -p0 stuff $'sh run.sh\n'
    5. Баним игрока
      Код:
      screen -S minecraft -X -p0 stuff $'ban wailorman\n'
    6. Перезапускаем сервер
      Код:
      screen -S minecraft -X -p0 stuff $'stop\n'
      Т.к. мы создали файл цикличного запуска сервера run.sh, то после каждой остановки сервера он будет запускаться вновь и вновь
    7. Останавливаем сервер
      Код:
      screen -S minecraft -X -p0 stuff $'save-all\n'
      screen -S minecraft -X kill
      или
      Код:
      screen -S minecraft -X quit
    С идеи LiveD я сделал скрипт, который автоматически будет запускать, рестартить и останавливать Ваш сервер командой
    ./control.sh start|restart|stop
    Чтобы скрипт работал, Ваш сервер по-умолчанию должен находится по адресу ~/minecraft/ , куда Вы должны поместить все содержимое архива control-final.zip (папка control и файл control.sh). В ином случае поменяйте все ~/minecraft в shell-никах на Вашу директорию.
    Затем Вам нужно поменять команду для запуска сервера в файле control/run.sh.
    Запускать сервер Вы будете командой
    ./control.sh start
    Переходить в консоль сервера
    screen -r minecraft
    Выходить из него комбинацией клавиш Ctrl+A+D
    Рестартить сервак также просто
    ./control.sh restart
    А делать безопасную становку сервера (пофиксил)
    ./control.sh stop

    Полная инструкция для Debian
    Устанавливаем screen от имени root
    apt-get install screen
    Создаем пользователя minecraft
    adduser minecraft
    Переходим на пользователя minecraft
    su minecraft
    cd ~/
    Создаем директорию minecraft, куда Вы будете заливать свою сборку
    mkdir minecraft
    cd ./minecraft
    Заливаем файлы с архива во вложении и свою сборку
    Изменяем команду запуска сервера
    nano ./control/run.sh
    Запускаем сервер (может выдать ошибку No screens found. Игнорим)
    ./control.sh start
    Заходим в консоль сервера
    screen -r minecraft
    Закрываем консоль комбинацией Ctrl+A+D
    Перезапускаем сервер
    ./control.sh restart
    Останавливаем сервер
    ./control.sh stop


     
    Lemz0, VipStepaan, ExTeZi_xD и 6 другим нравится это.
  2. Хостинг MineCraft
    <
  3. Code

    Code Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    _Gizmo
    не проще ли использовать ртулкит, запуская его в скрине? и не надо будет так жестоко выключать серв. и авторестарт будет.
     
    klarnet и ufes нравится это.
  4. Автор темы
    wailorman

    wailorman Активный участник Пользователь

    Баллы:
    93
    Skype:
    serg1524
    Имя в Minecraft:
    wailorman
    Меня интересовало полностью автономное решение, где я мог бы запускать screen хоть с <?exec("run.sh")?>, и screen бы не ругался, что ему нужен вывод в нормальный терминал, а не в /dev/null
    Весь этот скрипт можно автоматизировать еще больше, и свести абсолютно все управление сервером к одному shell-файлу.
    Я на форуме почти не сижу, и серверами minecraft уже не занимаюсь. Только Unix-системы. Посчитал, что поделиться маленьким достижением с вами будет только в пользу.

    А сервер можно останавливать мягче, если оно того требует.
    screen -r minecraft, а дальше ручками
     
  5. colderpilot

    colderpilot Старожил Пользователь

    Баллы:
    103
    винду ставьте и не парьтесь.
    ой только не орите что у unix производительность лучше.
    Держу сервер 160 игроков вечером (32 плагина), 2012, отлично все. Руки главное иметь как у гарри поттера.
     
    Jack11398 нравится это.
  6. Автор темы
    wailorman

    wailorman Активный участник Пользователь

    Баллы:
    93
    Skype:
    serg1524
    Имя в Minecraft:
    wailorman
    О производительности Java на разных ОС можно почитать другие темы. Хоть эту
     
  7. colderpilot

    colderpilot Старожил Пользователь

    Баллы:
    103
    Я клал на темы.
    У меня два сервера на одном 100 забито постоянно (linux), на втором 180 человек с запасом (windows 2012), и при создании сервера я не посещал rubukkit вообще. А мой друг который начитался всяких тем, так задурен, что и 30 слотов нормально сделать не может.
     
  8. LiveD

    LiveD Старожил Пользователь

    Баллы:
    153
    Skype:
    LiveDRus
    Я давно в паблике нашел хороший скрипт, который может выполнять команды, бэкапа, рестарта, стопа и запуска, вида: "sh 11.sh *start,stop...*"
     
  9. Автор темы
    wailorman

    wailorman Активный участник Пользователь

    Баллы:
    93
    Skype:
    serg1524
    Имя в Minecraft:
    wailorman
    Было бы неплохо, если бы Вы не только рассказали о его возможностях, но и выложили. Многим будет интересно посмотреть на решение лучше моего.
     
    RVXman нравится это.
  10. ufes

    ufes Старожил Девелопер Пользователь

    Баллы:
    173
    Save-all
    Kill
    Ну ты жестокий...
     
    ВремяПриключений и BleaZz нравится это.
  11. Mishkentus

    Mishkentus Активный участник

    Баллы:
    68
    Имя в Minecraft:
    Mishke
    Пардон, а как открыть скрин с консолью сервера, что бы мониторить происходящее и потом вернутся? Дайте команды пожалуйста ^^
     
  12. Автор темы
    wailorman

    wailorman Активный участник Пользователь

    Баллы:
    93
    Skype:
    serg1524
    Имя в Minecraft:
    wailorman
    Это один из вариантов экстренной остановки сервера, если она нужна. Если нужен рестарт, достаточно отправить stop, после чего он будет автоматически заново запущен. А нормально остановить можно только если прекратить выполнение цикла.

    screen -r minecraft
     
    Mishkentus нравится это.
  13. Kela-4D

    Kela-4D Старожил Пользователь

    Баллы:
    143
    Skype:
    kelatyh
    Имя в Minecraft:
    Kelatyh
    Ты знаешь как сделать на сайте,консоль что бы Все логи были??
     
  14. Kela-4D

    Kela-4D Старожил Пользователь

    Баллы:
    143
    Skype:
    kelatyh
    Имя в Minecraft:
    Kelatyh
    @Aim-X, вопрос!
     
  15. Mishkentus

    Mishkentus Активный участник

    Баллы:
    68
    Имя в Minecraft:
    Mishke
    а выйти от туда как?
     
  16. Автор темы
    wailorman

    wailorman Активный участник Пользователь

    Баллы:
    93
    Skype:
    serg1524
    Имя в Minecraft:
    wailorman
    Ctrl+A+D для того, чтобы свернуть сессию screen

    Выводить логи через screen - это костыль костылей. Я бы покопался в сторону чтения файла логов
     
    zuma2, Kela-4D и Mishkentus нравится это.
  17. zuma2

    zuma2 Старожил Пользователь Заблокирован

    Баллы:
    173
    Skype:
    sytems.admin
    Имя в Minecraft:
    zuma2
    спасибо
     
  18. zuma2

    zuma2 Старожил Пользователь Заблокирован

    Баллы:
    173
    Skype:
    sytems.admin
    Имя в Minecraft:
    zuma2
    а от кила процесса что поможет?
     
  19. Code

    Code Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    _Gizmo
    поможет ртулкит. запускаем его под скрином безо всяких циклов. к серверу коннектимся через телнет (можно и в скрин впилиться, но телнет убивает возможность случайно положить серв комбинацией ctrl+c + нужен пароль только от ртулкита, а не от всей машины). если надо, сервак ребутится сам. ребутать и выключать его можно тоже командой.
     
  20. zuma2

    zuma2 Старожил Пользователь Заблокирован

    Баллы:
    173
    Skype:
    sytems.admin
    Имя в Minecraft:
    zuma2
    не просто какойто бот на хостинге убивает процес сервера
     
    slavik123123123 нравится это.
  21. Code

    Code Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    _Gizmo
    что за бред? что за бот? что за хостинг? не думаю, что что-то поможет от убиства процесса.
     

Поделиться этой страницей