Ігрові сервери отримують користь від регулярних перезапусків для очищення витоків пам'яті, застосування змін конфігурації та підтримки стабільної продуктивності протягом тривалих ігрових сесій. Цей посібник показує, як налаштувати автоматичні заплановані перезапуски за допомогою функції Schedules у GPanel, щоб ваш сервер залишався справним без ручного втручання.
Навіщо планувати перезапуски?
Більшість ігрових серверів накопичують використання пам'яті й тимчасові дані з часом. Без періодичних перезапусків ви можете помітити:
- Зростання лагів і «гумування» у міру зростання використання RAM протягом годин або днів
- Уповільнення завантаження сутностей і фрагментів в іграх на кшталт Minecraft і Project Zomboid
- Витоки пам'яті, пов'язані з модами, які скидаються лише при повному перезапуску сервера
- Затримане застосування змін конфігурації, які потребують перезапуску для набуття чинності
Запланований перезапуск кожні 6–12 годин є найпоширенішим налаштуванням і запобігає більшості цих проблем.
Передумови
- Активний ігровий сервер з Legion Hosting
- Доступ до GPanel з вашими обліковими даними
- Ваш сервер має бути у стані Running (розклади спрацьовують лише тоді, коли сервер онлайн, якщо не налаштовано інакше)
Крок 1: Відкрийте вкладку Schedules
- Увійдіть до GPanel і виберіть ваш сервер зі списку серверів.
- На лівій бічній панелі натисніть вкладку Schedules.
- Ви побачите список будь-яких наявних розкладів. Якщо це новий сервер, список буде порожнім.
Крок 2: Створіть новий розклад
- Натисніть кнопку Create Schedule.
- Введіть Name для розкладу — щось описове, наприклад
Auto Restart Every 6 Hours. - Встановіть Cron Expression, щоб контролювати, коли запускається розклад. Дивіться розділ нижче для поширених прикладів.
- Переконайтеся, що Enabled увімкнено.
- Натисніть Save, щоб створити розклад.
Крок 3: Додайте завдання перезапуску до розкладу
- Після збереження розкладу натисніть на його назву, щоб відкрити його.
- У розділі Tasks натисніть New Task.
- Встановіть Action на Send power action.
- Встановіть Payload на Restart.
- Встановіть Time Offset на
0секунд (це означає, що завдання запускається негайно, коли спрацьовує розклад). - Натисніть Save.
Ваш запланований перезапуск тепер активний. Сервер автоматично перезапускатиметься відповідно до налаштованого вами cron-виразу.
Розуміння cron-виразів
GPanel використовує cron-вирази для визначення того, коли запускається розклад. Cron-вираз має п'ять полів, розділених пробілами:
Minute Hour Day-of-Month Month Day-of-Week
* * * * *
| Поле | Дозволені значення | Опис |
|---|---|---|
| Хвилина | 0–59 | Хвилина години, коли запускається завдання |
| Година | 0–23 | Година доби (24-годинний формат) |
| День місяця | 1–31 | День місяця |
| Місяць | 1–12 | Місяць року |
| День тижня | 0–6 (0 = Неділя) | День тижня |
Спеціальні символи:
*— відповідає кожному значенню (підстановочний знак)*/N— відповідає кожному N-му інтервалу (наприклад,*/6у полі Година означає кожні 6 годин),— розділяє кілька значень (наприклад,0,12означає о 0 та 12)
Поширені розклади перезапуску
Ось найпопулярніші інтервали перезапуску та cron-вирази для використання в GPanel:
| Частота перезапуску | Cron-вираз | Перезапуск о (Час сервера) |
|---|---|---|
| Кожні 6 годин | 0 */6 * * * |
12:00, 06:00, 12:00, 18:00 |
| Кожні 8 годин | 0 */8 * * * |
12:00, 08:00, 16:00 |
| Кожні 12 годин | 0 0,12 * * * |
12:00, 12:00 |
| Раз на день (04:00) | 0 4 * * * |
04:00 |
| Раз на день (06:00) | 0 6 * * * |
06:00 |
| Кожні 3 години | 0 */3 * * * |
00:00, 03:00, 06:00, 09:00, 12:00, 15:00, 18:00, 21:00 |
Попередження гравців перед перезапуском
Перезапуск без попередження може перервати гравців посеред дії, спричиняючи розчарування або втрату прогресу. Ви можете використовувати завдання Send Command у GPanel, щоб транслювати попереджувальне повідомлення гравцям перед тим, як відбудеться перезапуск.
Як це працює
Замість одного завдання перезапуску ви створюєте кілька завдань у межах одного розкладу, рознесених у часі за допомогою зсувів часу:
- Завдання Send Command зі зсувом
0, що транслює попереджувальне повідомлення (наприклад, «Server restarting in 5 minutes») - Завдання Send Command зі зсувом
240(4 хвилини потому) з остаточним попередженням (наприклад, «Server restarting in 1 minute») - Завдання Send power action → Restart зі зсувом
300(через 5 хвилин після першого попередження)
0 для негайного виконання, 60 для 1 хвилини, 300 для 5 хвилин тощо.
Приклад: Повний розклад із попередженнями
Ось як виглядає повний розклад із 5-хвилинним попередженням, 1-хвилинним попередженням і перезапуском:
| Завдання № | Дія | Payload / Команда | Зсув часу |
|---|---|---|---|
| 1 | Send command | (специфічна для гри команда попередження — дивіться нижче) | 0 секунд |
| 2 | Send command | (специфічна для гри команда остаточного попередження) | 240 секунд |
| 3 | Send power action | Restart | 300 секунд |
Специфічні для ігор команди попередження
Команда, яку ви використовуєте для трансляції повідомлення гравцям, різниться залежно від гри. Нижче наведено команди для найпопулярніших ігор:
Project Zomboid
Використовуйте команду servermsg, щоб надіслати внутрішньоігрове повідомлення всім підключеним гравцям:
servermsg "Server restarting in 5 minutes. Please find a safe location."
servermsg "Server restarting in 1 minute!"
Minecraft
Використовуйте команду say, щоб транслювати повідомлення в чаті всім гравцям:
say Server restarting in 5 minutes. Please save your progress.
say Server restarting in 1 minute!
ARK: Survival Ascended
Використовуйте команду broadcast, щоб відобразити повідомлення на екрані для всіх гравців:
broadcast Server restarting in 5 minutes. Please find a safe location.
broadcast Server restarting in 1 minute!
Найкращі практики
- Перезапускайте в години низької активності. Якщо ваш сервер має передбачуваний графік гравців, плануйте перезапуски на час, коли онлайн найменше гравців. Щоденний перезапуск о 04:00 або 06:00 добре працює для більшості спільнот.
- Завжди включайте попередження. Навіть 1-хвилинне попередження дає гравцям час дістатися безпечного місця або завершити обмін. 5-хвилинне попередження є ідеальним.
- Використовуйте резервні копії разом із перезапусками. Якщо ваша гра або GPanel підтримує автоматичне резервне копіювання, заплануйте резервну копію перед перезапуском. Це гарантує, що у вас завжди є нещодавнє збереження на випадок, якщо щось піде не так.
- Не перезапускайте занадто часто. Перезапуск щогодини непотрібний для більшості серверів і дратуватиме гравців. Кожні 6–12 годин — це оптимальний варіант, якщо тільки ви не запускаєте сильно модифікований сервер із відомими проблемами витоку пам'яті.
- Протестуйте ваш розклад. Після створення розкладу перевірте через перший очікуваний час спрацювання, щоб підтвердити, що перезапуск відбувся. Перегляньте журнал консолі GPanel на подію перезапуску.
- Чітко називайте ваші розклади. Використовуйте описові назви на кшталт «6h Auto Restart with Warning», щоб ви могли швидко визначити, що робить кожен розклад.
Керування наявними розкладами
Ви можете змінювати або вимикати розклади будь-коли з вкладки Schedules у GPanel:
- Щоб відредагувати розклад: натисніть на назву розкладу, змініть cron-вираз або завдання й натисніть Save.
- Щоб тимчасово вимкнути розклад: відкрийте розклад і вимкніть Enabled. Розклад залишиться збереженим, але не спрацює, доки ви не увімкнете його знову.
- Щоб видалити розклад: натисніть значок видалення поруч із розкладом. Це видаляє його назавжди.
Усунення несправностей
| Проблема | Що перевірити |
|---|---|
| Розклад не спрацьовує | Відкрийте розклад і підтвердіть, що Enabled увімкнено. Перевірте ще раз cron-вираз — поширеною помилкою є використання неправильного порядку полів. Переконайтеся, що сервер онлайн, коли розклад має спрацювати. |
| Перезапуск відбувається, але попереджувальне повідомлення не з'являється | Переконайтеся, що завдання Send Command використовує правильну команду для вашої гри. Перевірте, що зсув часу менший за зсув завдання перезапуску (наприклад, попередження о 0 секунд, перезапуск о 300 секунд). |
| Сервер не повертається в онлайн після перезапуску | Перевірте консоль GPanel на помилки запуску. Якщо сервер аварійно завершив роботу під час вимкнення, він може не перезапуститися коректно. Спробуйте ручний Start з GPanel. Якщо проблема не зникає, відкрийте тикет підтримки. |
| Cron-вираз не приймається | GPanel вимагає рівно 5 полів у cron-виразі (хвилина, година, день місяця, місяць, день тижня). Не включайте поле секунд. Переконайтеся, що немає зайвих пробілів або спеціальних символів. |
| Команда попередження надсилається, але гравці її не бачать | Деякі ігри вимагають специфічного форматування. Для Project Zomboid повідомлення має бути в лапках: servermsg "Your message here". Для Minecraft say не використовує лапки. Перевірте специфічний для гри розділ вище. |
Потрібна допомога?
Якщо у вас виникають труднощі з налаштуванням запланованих перезапусків або ваш розклад не працює належним чином, відкрийте тикет підтримки і вкажіть:
- Назву вашого сервера з GPanel
- Cron-вираз, який ви використовуєте
- Опис того, що відбувається (або не відбувається)
Наша команда підтримки допоможе вам правильно налаштувати розклад.