Регулярный перезапуск игрового сервера освобождает память и применяет обновления, но игроков нужно предупреждать. Инструмент пишет скрипт с предупреждениями и перезапуском и расписание для Linux (cron или systemd) или Windows.
Как пользоваться инструментом
Выберите платформу (cron, systemd или Windows), время перезапуска и дни.
Укажите предупреждения в минутах до перезапуска, сообщение и команду чата игры.
Заполните RCON-клиент (хост, порт), команду сохранения и имя службы.
Сохраните каждый блок в файл, указанный в комментарии, задайте MCRCON_PASS и включите расписание.
Как работает расписание
Задача стартует в момент первого предупреждения (время перезапуска минус наибольшая задержка). Скрипт отправляет каждое предупреждение, ждёт разницу между ними, сохраняет и перезапускает службу: при 30,15,5,1 минуты и перезапуске в 04:00 задача стартует в 03:30. Если время старта попадает на предыдущие сутки, дни сдвигаются автоматически. Скрипт рассчитан на RCON-клиент с синтаксисом «-H хост -P порт команда» (mcrcon); для другого клиента измените строку send(). Синтаксис сообщения зависит от игры: сверьтесь со шпаргалкой по RCON.
sudo mkdir -p /etc/gameserver
echo 'MCRCON_PASS=ChangeMe!' | sudo tee /etc/gameserver/rcon.env
sudo chmod 600 /etc/gameserver/rcon.envЧастые вопросы
- Хранится ли пароль RCON в скрипте?
- Нет. Скрипт читает переменную окружения MCRCON_PASS (её понимает mcrcon). Храните её в файле только для чтения (chmod 600) или в системной переменной Windows.
- cron, systemd или задача Windows?
- В Linux systemd даёт журналы и обработку ошибок (journalctl), cron проще. В Windows используйте планировщик заданий через schtasks.
