Игровите сървъри се възползват от редовни рестартирания, за да изчистят изтичания на памет, да приложат промени в конфигурацията и да поддържат стабилна производителност по време на дълги игрови сесии. Това ръководство ви показва как да настроите автоматични планирани рестартирания чрез функцията Schedules в GPanel, така че вашият сървър да остане здрав без ръчна намеса.
Защо да планирате рестартирания?
Повечето игрови сървъри натрупват използване на памет и временни данни с течение на времето. Без периодични рестартирания може да забележите:
- Нарастващ lag и rubber-banding с покачването на използването на RAM в продължение на часове или дни
- Забавяне на зареждането на entity и chunks в игри като 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
* * * * *
| Поле | Позволени стойности | Описание |
|---|---|---|
| Minute | 0–59 | Минутата на часа, в която задачата се изпълнява |
| Hour | 0–23 | Часът на деня (24-часов формат) |
| Day of Month | 1–31 | Денят от месеца |
| Month | 1–12 | Месецът от годината |
| Day of Week | 0–6 (0 = Неделя) | Денят от седмицата |
Специални символи:
*— съответства на всяка стойност (заместващ символ)*/N— съответства на всеки N интервал (напр.*/6в полето Hour означава на всеки 6 часа),— разделя множество стойности (напр.0,12означава в 0 и 12)
Често срещани планирания за рестартиране
Ето най-популярните интервали за рестартиране и cron изразите, които да използвате в GPanel:
| Честота на рестартиране | Cron израз | Рестартиране в (Сървърно време) |
|---|---|---|
| На всеки 6 часа | 0 */6 * * * |
12:00 AM, 6:00 AM, 12:00 PM, 6:00 PM |
| На всеки 8 часа | 0 */8 * * * |
12:00 AM, 8:00 AM, 4:00 PM |
| На всеки 12 часа | 0 0,12 * * * |
12:00 AM, 12:00 PM |
| Веднъж дневно (4:00 AM) | 0 4 * * * |
4:00 AM |
| Веднъж дневно (6:00 AM) | 0 6 * * * |
6:00 AM |
| На всеки 3 часа | 0 */3 * * * |
12 AM, 3 AM, 6 AM, 9 AM, 12 PM, 3 PM, 6 PM, 9 PM |
Предупреждаване на играчите преди рестартиране
Рестартирането без предупреждение може да прекъсне играчите по средата на действие, причинявайки фрустрация или загубен прогрес. Можете да използвате задачата 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-минутно предупреждение и рестартирането:
| Задача № | Action | Payload / Команда | Time Offset |
|---|---|---|---|
| 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!
Най-добри практики
- Рестартирайте по време на извън-пиковите часове. Ако вашият сървър има предвидим график на играчите, насрочете рестартиранията за времето, когато най-малкото играчи са онлайн. Дневно рестартиране в 4:00 AM или 6:00 AM работи добре за повечето общности.
- Винаги включвайте предупреждение. Дори 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 израза, който използвате
- Описание на това, което се случва (или не се случва)
Нашият екип за поддръжка ще ви помогне да конфигурирате планирането правилно.