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

"Плавное" выключение сервера .bat`ником

Тема в разделе "Управление сервером Bukkit", создана пользователем Meowt, 8 фев 2015.

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

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

    Баллы:
    123
    Доброго времени суток. Необходимо "плавно"(т.е. с сохранением данных: карты, файлов плагинов, etc) выключать сервер (пусть будет bukkit) выполнением обычного батника.
    Буду рад любым подсказкам.
     
    Последнее редактирование: 17 фев 2015
  2. Хостинг MineCraft
    <
  3. Автор темы
    Meowt

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

    Баллы:
    123
  4. LightSunrider

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

    Баллы:
    78
    Имя в Minecraft:
    LightSunrider
    Код:
    taskkill /im {Имя процесса} /f
    
    Код:
    Get-Process -Name {Имя процесса}* | Stop-Process
    
    Если сервер запущен отдельно от командной строки то процесс javaw.exe, если в вместе то cmd.exe
     
  5. saharin94

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

    Баллы:
    173
    Skype:
    RikkiLooh
    Имя в Minecraft:
    RubukkitDniwe
    После таких "выключений" и происходят так называемые в народе "откаты".
     
  6. skynetxxx

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

    Баллы:
    123
    Имя в Minecraft:
    skynetxxx
    Параметр /f тут определённо лишний, потому что он убьёт процесс не дожидаясь его завершения.
    Это так, но сервер должен уметь корректно обрабатывать сигнал на завершения процесса, сохраняя перед этим все данные.

    Выключить сервер без риска потерять какие-то данные из обычного батника невозможно.
    Нужно отправлять команду внутрь терминала, что требует специальных программных средств (на Linux можно отправлять команду внутрь screen, выключая сервер).
     
  7. Автор темы
    Meowt

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

    Баллы:
    123
    Каким образом? Лично у меня при завершении процесса сервер перезапускается без каких-либо сохранений данных.
    Понятно, что если просто убить процесс jvm - это почти тоже самое, что выдернуть кабель из бп. К слову, мне и нужно "плавное" завершение сервера перед выключением пк без моего участия (вопросы по этому поводу можно не задавать, ибо суть темы никак к этому не относится).

    Вопрос остается актуальным.
    Мне нужно каким-то образом передать команду завершения сервера непосредственно в консоль сервера для его "плавного" завершения.

    P.S. Добавил условие "плавности" в шапку темы.
     
  8. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Ок, вот тебе простенький сшник. Помести его в папку с сервером где лежит spigot.jar.
    В игре обычным шедулером выполняй стоп раз в n часов.

    Код:
    cd "`dirname "$0"`"
    echo "true" >restartserver
    while $restartserver;
    do
    java -jar spigot.jar
    read restartserver <"restartserver"
    done
    Чтоб выйти из бесконечного цикла, в файле restartserver смени true на false. В таком случае команда stop стопнит сервер без рестарта.
     
    Последнее редактирование: 17 фев 2015

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