سرورهای بازی از ریاستارتهای منظم برای پاکسازی نشت حافظه، اعمال تغییرات تنظیمات و حفظ عملکرد پایدار در طول جلسات بازی طولانی بهره میبرند. این راهنما نحوه تنظیم ریاستارتهای خودکار زمانبندی شده با استفاده از قابلیت Schedules در GPanel را نشان میدهد، تا سرور شما بدون مداخله دستی سالم بماند.
چرا ریاستارت زمانبندی شده؟
اکثر سرورهای بازی با گذشت زمان مصرف حافظه و دادههای موقت انباشته میکنند. بدون ریاستارتهای دورهای، ممکن است متوجه موارد زیر شوید:
- افزایش لگ و rubber-banding با بالا رفتن مصرف RAM در طول ساعتها یا روزها
- کندی بارگذاری entity و chunk در بازیهایی مانند Minecraft و Project Zomboid
- نشت حافظه مربوط به مادها که فقط با ریاستارت کامل سرور ریست میشوند
- تأخیر در اعمال تغییرات تنظیمات که برای اعمال نیاز به ریاستارت دارند
یک ریاستارت زمانبندی شده هر ۶ تا ۱۲ ساعت رایجترین تنظیم است و از اکثر این مشکلات جلوگیری میکند.
پیشنیازها
- یک سرور بازی فعال با Legion Hosting
- دسترسی به GPanel با اطلاعات حساب کاربری شما
- سرور شما باید در وضعیت Running باشد (زمانبندیها فقط وقتی سرور آنلاین است فعال میشوند، مگر اینکه به صورت دیگری تنظیم شده باشد)
مرحله ۱: باز کردن تب Schedules
- وارد GPanel شوید و سرور خود را از لیست سرورها انتخاب کنید.
- در نوار کناری سمت چپ، روی تب Schedules کلیک کنید.
- لیستی از زمانبندیهای موجود را خواهید دید. اگر سرور جدید است، لیست خالی خواهد بود.
مرحله ۲: ایجاد یک زمانبندی جدید
- روی دکمه Create Schedule کلیک کنید.
- یک Name برای زمانبندی وارد کنید — چیزی توصیفی مانند
Auto Restart Every 6 Hours. - Cron Expression را برای کنترل زمان اجرای زمانبندی تنظیم کنید. بخش زیر را برای مثالهای رایج ببینید.
- مطمئن شوید که Enabled فعال است.
- روی Save کلیک کنید تا زمانبندی ایجاد شود.
مرحله ۳: اضافه کردن یک Task ریاستارت به زمانبندی
- پس از ذخیره زمانبندی، روی نام آن کلیک کنید تا باز شود.
- در بخش Tasks، روی New Task کلیک کنید.
- Action را روی Send power action تنظیم کنید.
- Payload را روی Restart تنظیم کنید.
- Time Offset را روی
0ثانیه تنظیم کنید (یعنی task بلافاصله هنگام فعال شدن زمانبندی اجرا میشود). - روی Save کلیک کنید.
ریاستارت زمانبندی شده شما اکنون فعال است. سرور به صورت خودکار طبق cron expression تنظیم شده ریاستارت خواهد شد.
درک Cron Expression ها
GPanel از cron expression ها برای تعریف زمان اجرای زمانبندی استفاده میکند. یک cron expression پنج فیلد دارد که با فاصله جدا شدهاند:
Minute Hour Day-of-Month Month Day-of-Week
* * * * *
| فیلد | مقادیر مجاز | توضیحات |
|---|---|---|
| Minute | 0–59 | دقیقهای از ساعت که task اجرا میشود |
| Hour | 0–23 | ساعت روز (فرمت ۲۴ ساعته) |
| Day of Month | 1–31 | روز ماه |
| Month | 1–12 | ماه سال |
| Day of Week | 0–6 (0 = یکشنبه) | روز هفته |
کاراکترهای ویژه:
*— با هر مقداری مطابقت دارد (wildcard)*/N— با هر N فاصله مطابقت دارد (مثلاً*/6در فیلد Hour یعنی هر ۶ ساعت),— چندین مقدار را جدا میکند (مثلاً0,12یعنی در ساعت ۰ و ۱۲)
زمانبندیهای رایج ریاستارت
در اینجا محبوبترین فواصل ریاستارت و cron expression های مورد استفاده در GPanel آمده است:
| فرکانس ریاستارت | Cron Expression | زمان ریاستارت (به وقت سرور) |
|---|---|---|
| هر ۶ ساعت | 0 */6 * * * |
12:00 AM, 6:00 AM, 12:00 PM, 6:00 PM |
| هر ۸ ساعت | 0 */8 * * * |
12:00 AM, 8:00 AM, 4:00 PM |
| هر ۱۲ ساعت | 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 |
| هر ۳ ساعت | 0 */3 * * * |
12 AM, 3 AM, 6 AM, 9 AM, 12 PM, 3 PM, 6 PM, 9 PM |
هشدار به بازیکنان قبل از ریاستارت
ریاستارت بدون هشدار میتواند بازیکنان را در میانه عمل قطع کند و باعث ناامیدی یا از دست رفتن پیشرفت شود. میتوانید از task Send Command در GPanel برای پخش یک پیام هشدار به بازیکنان قبل از ریاستارت استفاده کنید.
نحوه کار
به جای یک task ریاستارت، چندین task در یک زمانبندی ایجاد میکنید که با فاصلههای زمانی اجرا میشوند:
- یک task Send Command در offset
0که یک پیام هشدار پخش میکند (مثلاً "سرور در ۵ دقیقه ریاستارت میشود") - یک task Send Command در offset
240(۴ دقیقه بعد) با یک هشدار نهایی (مثلاً "سرور در ۱ دقیقه ریاستارت میشود") - یک task Send power action → Restart در offset
300(۵ دقیقه پس از اولین هشدار)
0 برای فوری، 60 برای ۱ دقیقه، 300 برای ۵ دقیقه و غیره استفاده کنید.
مثال: زمانبندی کامل با هشدارها
در اینجا یک زمانبندی کامل با هشدار ۵ دقیقهای، هشدار ۱ دقیقهای و ریاستارت نشان داده شده است:
| شماره Task | عمل | 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!
بهترین شیوهها
- در ساعات کمترافیک ریاستارت کنید. اگر سرور شما برنامه بازیکنان قابل پیشبینی دارد، ریاستارتها را برای زمانی تنظیم کنید که کمترین تعداد بازیکن آنلاین هستند. ریاستارت روزانه در ساعت 4:00 AM یا 6:00 AM برای اکثر جوامع مناسب است.
- همیشه یک هشدار اضافه کنید. حتی یک هشدار ۱ دقیقهای به بازیکنان فرصت میدهد به مکان امنی برسند یا معاملهای را تمام کنند. هشدار ۵ دقیقهای ایدهآل است.
- از پشتیبانگیری در کنار ریاستارت استفاده کنید. اگر بازی یا GPanel شما از پشتیبانگیری خودکار پشتیبانی میکند، یک پشتیبان قبل از ریاستارت زمانبندی کنید. این تضمین میکند که همیشه یک ذخیره اخیر دارید.
- بیش از حد مکرر ریاستارت نکنید. ریاستارت هر ساعت برای اکثر سرورها غیرضروری است و بازیکنان را ناامید میکند. هر ۶ تا ۱۲ ساعت نقطه مطلوب است مگر اینکه سرور با مادهای زیاد و مشکلات شناخته شده نشت حافظه اجرا شود.
- زمانبندی خود را تست کنید. پس از ایجاد زمانبندی، بعد از اولین زمان فعالسازی مورد انتظار بررسی کنید که ریاستارت انجام شده است. لاگ Console در GPanel را برای رویداد ریاستارت بررسی کنید.
- زمانبندیها را با نام واضح نامگذاری کنید. از نامهای توصیفی مانند "6h Auto Restart with Warning" استفاده کنید تا بتوانید سریعاً تشخیص دهید هر زمانبندی چه کاری انجام میدهد.
مدیریت زمانبندیهای موجود
میتوانید در هر زمان از تب Schedules در GPanel زمانبندیها را ویرایش یا غیرفعال کنید:
- برای ویرایش یک زمانبندی: روی نام زمانبندی کلیک کنید، cron expression یا task ها را تغییر دهید و روی Save کلیک کنید.
- برای غیرفعال کردن موقت یک زمانبندی: زمانبندی را باز کنید و Enabled را خاموش کنید. زمانبندی ذخیره میماند اما تا زمانی که دوباره فعالش نکنید اجرا نخواهد شد.
- برای حذف یک زمانبندی: روی آیکون حذف کنار زمانبندی کلیک کنید. این کار آن را به صورت دائمی حذف میکند.
عیبیابی
| مشکل | چه چیزی را بررسی کنید |
|---|---|
| زمانبندی فعال نمیشود | زمانبندی را باز کنید و تأیید کنید که Enabled فعال است. cron expression را دوباره بررسی کنید — یک اشتباه رایج استفاده از ترتیب نادرست فیلدها است. مطمئن شوید که سرور هنگام فعال شدن زمانبندی آنلاین است. |
| ریاستارت انجام میشود اما پیام هشدار ظاهر نمیشود | مطمئن شوید که task Send Command از دستور صحیح برای بازی شما استفاده میکند. بررسی کنید که فاصله زمانی کمتر از فاصله زمانی task ریاستارت باشد (مثلاً هشدار در ۰ ثانیه، ریاستارت در ۳۰۰ ثانیه). |
| سرور پس از ریاستارت آنلاین نمیشود | Console در GPanel را برای خطاهای استارتاپ بررسی کنید. اگر سرور هنگام خاموش شدن کرش کرده باشد، ممکن است به درستی ریاستارت نشود. یک Start دستی از GPanel امتحان کنید. اگر مشکل ادامه داشت، یک تیکت پشتیبانی ارسال کنید. |
| Cron expression پذیرفته نمیشود | GPanel دقیقاً ۵ فیلد در cron expression نیاز دارد (minute، hour، day of month، month، day of week). فیلد seconds اضافه نکنید. مطمئن شوید فاصلهها یا کاراکترهای ویژه اضافی وجود ندارد. |
| دستور هشدار ارسال میشود اما بازیکنان آن را نمیبینند | برخی بازیها به فرمت خاصی نیاز دارند. برای Project Zomboid، پیام باید داخل گیومه باشد: servermsg "Your message here". برای Minecraft، say از گیومه استفاده نمیکند. بخش مخصوص هر بازی در بالا را بررسی کنید. |
به کمک نیاز دارید؟
اگر در تنظیم ریاستارتهای زمانبندی شده مشکل دارید یا زمانبندی شما طبق انتظار کار نمیکند، یک تیکت پشتیبانی ارسال کنید و موارد زیر را شامل کنید:
- نام سرور شما از GPanel
- cron expression مورد استفاده شما
- توضیحی از آنچه اتفاق میافتد (یا نمیافتد)
تیم پشتیبانی ما به شما کمک خواهد کرد تا زمانبندی را به درستی تنظیم کنید.