DGuard

Инструменты

Перезапуск сервера по расписанию

Выберите время перезапуска и за сколько минут предупреждать — получите строки crontab: сервер напишет игрокам в чат, а в назначенное время получит stop. Поднимет его systemd с Restart=always или цикл в скрипте запуска.

Рестарт по расписанию

Время перезапуска

Время машины, на которой стоит сервер: cron живёт в её часовом поясе.

Предупредить за, минут

Сообщения уйдут в чат командой say.

Строки crontab

45 4 * * * tmux send-keys -t mc "say Перезапуск сервера через 15 мин." Enter
55 4 * * * tmux send-keys -t mc "say Перезапуск сервера через 5 мин." Enter
59 4 * * * tmux send-keys -t mc "say Перезапуск сервера через 1 мин." Enter
0 5 * * * tmux send-keys -t mc "say Перезапуск! Возвращайтесь через минуту." Enter
0 5 * * * sleep 5 && tmux send-keys -t mc "stop" Enter
Откройте crontab пользователя, от которого работает сервер, и вставьте строки в конец. Сервер должен сам подниматься после stop: юнит systemd с Restart=always или цикл в скрипте запуска.
Открыть crontab пользователя minecraft
sudo -u minecraft crontab -e

Зачем перезапускать сервер и как это работает

Плановый перезапуск раз в сутки — привычная практика: сервер заново загружает плагины и мир, а игроки знают время заранее. Генератор собирает строки для cron — планировщика Linux: в нужные минуты он отправляет в консоль сервера say с предупреждением, а в назначенное время — stop.

Команды уходят в консоль через tmux send-keys — так устроен запуск в нашем юните systemd: консоль живёт в сессии tmux. stop корректно сохраняет миры. Поднимает сервер обратно systemd с Restart=always или цикл в скрипте запуска с автоперезапуском.

Cron использует время и часовой пояс машины. Строки добавляют в crontab того пользователя, от которого работает сервер: sudo -u minecraft crontab -e. Проверить, что они на месте, — crontab -l от того же пользователя.

Если сервер лагает так, что его приходится часто перезапускать, ищите причину профайлером spark. DGuard тратит 0,03 % одного ядра на основном потоке — из-за античита перезапуски не понадобятся.

Читайте в базе знаний

Частые вопросы

Как сделать автоматический перезапуск сервера Minecraft?

Добавьте в crontab строки из генератора: они предупредят игроков и отправят stop в нужное время. Чтобы сервер поднялся снова, его должен перезапускать systemd с Restart=always или цикл в скрипте запуска.

Почему сервер выключился и не включился?

stop только останавливает сервер. Запуск обратно делает systemd с Restart=always или цикл в start.sh — без них сервер остаётся выключенным.

В каком часовом поясе работает cron?

В часовом поясе машины. Проверьте его командой date и указывайте время по нему.

Можно ли так перезапускать сервер на хостинге с панелью?

Если доступа к cron нет, посмотрите, есть ли в панели хостинга планировщик задач: там перезапуск настраивается без строк crontab.

Инструменты бесплатны. Защита от читов — тоже

DGuard — лучший античит для современного сервера Minecraft: ловит все 47 видов читов из нашего сравнения, у ближайшего соперника, Intave, — 27. До 30 игроков онлайн — бесплатно, защита та же, что на платных тарифах.