Автоматический перезапуск сервера Minecraft на Linux: надёжный планировщик для Fabric
Каждый администратор сервера Minecraft рано или поздно сталкивается с необходимостью регулярных перезапусков. Долгая работа без рестарта приводит к накоплению мусора в памяти, падению TPS и общему снижению производительности. На ванильных и Forge-сборках эту задачу часто решают готовые моды, но для Fabric выбор скромнее — многие старые решения не обновлены или попросту не работают на версиях 1.19+. К счастью, системные инструменты Linux позволяют создать собственный планировщик рестартов без единого мода. В этом руководстве мы настроим автоматический перезапуск Fabric-сервера с предупреждениями для игроков, используя systemd-таймеры и screen-сессии.
Что потребуется для настройки
Метод рассчитан на выделенный сервер с дистрибутивом Linux (Ubuntu, Debian и подобные). Вам понадобятся базовые навыки работы с SSH, перемещением файлов и редактированием конфигураций. Сервер Minecraft уже должен быть установлен и запускаться через утилиту screen — именно она позволит управлять процессом в фоне. Убедитесь, что screen установлен командой sudo apt install screen.
В основе схемы лежат три компонента: служба, которая держит сервер в screen-сессии; одноразовый юнит, отправляющий команду остановки; и два таймера, задающих расписание рестартов и предупреждений. Все файлы будут размещены в каталоге /etc/systemd/system/.
Подготовка файлов служб и таймеров
Создайте следующие файлы (шаблоны можно скачать из описания руководства, заменив в них нужные параметры):
- minecraft.service — основная служба, запускающая сервер.
- oneshot.service — вспомогательный юнит, выполняющий команду
stopи перезапускающий основную службу. - minecraft.timer — таймер, активирующий oneshot.service по расписанию.
- restartwarning.service — отправляет сообщение в чат сервера за минуту до рестарта.
- restart-warning.timer — таймер для предупреждений.
Все файлы необходимо отредактировать под ваше окружение. Рассмотрим ключевые правки.
Настройка minecraft.service
Откройте файл и измените следующие строки:
- User=root — замените root на пользователя, от имени которого работает сервер.
- WorkingDirectory=/root/mcserver/fabric — укажите полный путь к папке с JAR-файлом сервера.
- ExecStart=screen -S mc -d -m java -Xmx6G -jar fabric-server-mc.1.19.2-loader.0.14.19-launcher.0.11.2.jar nogui — здесь измените только объём выделяемой RAM (ключ -Xmx) и точное имя вашего JAR-файла. Параметр
-S mcзадаёт имя screen-окна, через которое мы будем взаимодействовать с консолью.
Расписание в minecraft.timer и restart-warning.timer
В секции [Timer] пропишите желаемое время рестартов. Например, каждые 3 часа ежедневно:
[Timer] OnCalendar=*-*-* 00/3:00:00
Можно задать разные дни недели и точное время:
OnCalendar=Mon..Fri 19:00 OnCalendar=Sat,Sun 22:00
Аналогично настройте restart-warning.timer, но время предупреждения должно наступать раньше рестарта. Если рестарт в 19:00, предупреждение логично поставить на 18:59. Учитывайте часовой пояс сервера — проверьте его командой date и при необходимости скорректируйте смещение.
Сообщение для игроков
В файле restartwarning.service найдите строку:
ExecStart=screen -p 0 -S mc -X eval 'stuff "say SERVER WILL RESTART IN 1 MIN, PLEASE LOG OFF NOW."\015'
Замените текст после say на своё предупреждение, не трогая кавычки и спецсимволы \015 — они имитируют нажатие Enter в консоли.
Активация и проверка
Загрузите все файлы в /etc/systemd/system/ и выполните последовательно команды:
systemctl daemon-reloadsystemctl enable minecraft.servicesystemctl start minecraft.servicesystemctl enable oneshot.servicesystemctl enable minecraft.timersystemctl enable restartwarning.servicesystemctl enable restart-warning.timersystemctl start minecraft.timersystemctl start restart-warning.timer
Убедитесь, что служба minecraft.service активна: systemctl status minecraft.service. Затем проверьте screen-сессию: screen -ls — вы должны увидеть окно с именем «mc». Подключиться к нему можно через screen -r mc, а выйти обратно — комбинацией Ctrl+A, затем D.
Владельцам серверов на Forge повезло больше: для них существуют готовые моды, автоматизирующие рестарты. Если вы предпочитаете не возиться с консолью, установить такой мод можно через лаунчер foxygame.net — удобный, гибкий и современный лаунчер для Minecraft, где можно скачать моды прямо из меню. Однако для Fabric наш системный подход остаётся самым надёжным и не зависящим от обновлений клиентских модификаций.
Заключение
Описанный метод превращает обычный Linux-сервер в полностью автономную игровую машину. Вы получаете чёткое расписание перезагрузок, автоматическое сохранение миров и вежливые предупреждения для игроков — всё это без установки сторонних модов. Схема универсальна: она работает на любых версиях Fabric, а при небольшой адаптации подойдёт и для ванильного ядра. Освоив systemd-таймеры, вы сможете автоматизировать не только рестарты, но и резервное копирование, очистку логов и другие рутинные задачи. Администрирование Minecraft перестаёт быть хаотичным и превращается в предсказуемый процесс, который экономит время и бережёт нервы администратора.