游戏服务器受益于定期重启,以清除内存泄漏、应用配置更改并在长时间游戏过程中保持性能稳定。本指南向您展示如何使用 GPanel 中的计划任务功能设置自动定时重启,让您的服务器无需手动干预即可保持健康运行。
为什么要设置定时重启?
大多数游戏服务器会随时间积累内存使用量和临时数据。如果不定期重启,您可能会注意到:
- 延迟和卡顿增加,因为 RAM 使用量在数小时或数天内不断攀升
- 实体和区块加载变慢,特别是在 Minecraft 和 Project Zomboid 等游戏中
- 模组相关的内存泄漏,只有在完全重启服务器时才能重置
- 配置更改延迟应用,需要重启才能生效
每 6 到 12 小时进行一次定时重启是最常见的设置,可以防止大多数这些问题。
前提条件
- 在 Legion Hosting 上拥有一台活跃的游戏服务器
- 能够使用您的账户凭据访问 GPanel
- 您的服务器应处于 Running 状态(计划任务仅在服务器在线时触发,除非另有配置)
步骤 1:打开计划任务选项卡
- 登录 GPanel 并从服务器列表中选择您的服务器。
- 在左侧边栏中,点击 Schedules 选项卡。
- 您将看到现有计划任务的列表。如果这是新服务器,列表将为空。
步骤 2:创建新的计划任务
- 点击 Create Schedule 按钮。
- 为计划任务输入一个名称——描述性的名称,例如
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 个间隔匹配一次(例如,Hour 字段中的*/6表示每 6 小时),— 分隔多个值(例如,0,12表示在 0 和 12 时)
常见重启计划
以下是最常用的重启间隔以及在 GPanel 中使用的 cron 表达式:
| 重启频率 | 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) | 0 4 * * * |
4:00 AM |
| 每天一次(早上 6:00) | 0 6 * * * |
6:00 AM |
| 每 3 小时 | 0 */3 * * * |
12 AM, 3 AM, 6 AM, 9 AM, 12 PM, 3 PM, 6 PM, 9 PM |
在重启前警告玩家
在没有警告的情况下重启可能会打断玩家的操作,导致沮丧或进度丢失。您可以使用 GPanel 的 Send Command 任务在重启前向玩家广播警告消息。
工作原理
您不是创建单个重启任务,而是在同一个计划中创建多个任务,并使用时间偏移进行交错:
- 一个 Send Command 任务,偏移量为
0,广播警告消息(例如"服务器将在 5 分钟后重启") - 一个 Send Command 任务,偏移量为
240(4 分钟后),发送最终警告(例如"服务器将在 1 分钟后重启") - 一个 Send power action → Restart 任务,偏移量为
300(第一条警告后 5 分钟)
0 表示立即执行,60 表示 1 分钟,300 表示 5 分钟,以此类推。
示例:带警告的完整计划
以下是包含 5 分钟警告、1 分钟警告和重启的完整计划示例:
| 任务 # | 操作 | 负载/命令 | 时间偏移 |
|---|---|---|---|
| 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 或早上 6:00 重启效果很好。
- 始终包含警告。 即使是 1 分钟的警告也能给玩家时间到达安全位置或完成交易。5 分钟的警告是理想的。
- 将备份与重启配合使用。 如果您的游戏或 GPanel 支持自动备份,请在重启前安排备份。这确保在出现问题时您始终拥有最近的存档。
- 不要过于频繁地重启。 对于大多数服务器来说,每小时重启一次是不必要的,而且会让玩家感到沮丧。每 6 到 12 小时是最佳间隔,除非您运行的是存在已知内存泄漏问题的大量模组服务器。
- 测试您的计划。 创建计划后,在第一个预期触发时间后回来查看,确认重启已发生。查看 GPanel Console 日志中的重启事件。
- 清晰命名您的计划。 使用描述性名称,例如"6h Auto Restart with Warning",这样您可以快速识别每个计划的作用。
管理现有计划
您可以随时从 GPanel 中的 Schedules 选项卡修改或禁用计划:
- 编辑计划: 点击计划名称,更改 cron 表达式或任务,然后点击 Save。
- 临时禁用计划: 打开计划并关闭 Enabled 开关。计划将保持保存状态,但在您重新启用之前不会触发。
- 删除计划: 点击计划旁边的删除图标。这将永久删除该计划。
故障排除
| 问题 | 检查事项 |
|---|---|
| 计划未触发 | 打开计划并确认 Enabled 已开启。仔细检查 cron 表达式——常见错误是字段顺序不正确。确保计划应触发时服务器处于在线状态。 |
| 重启发生但警告消息未出现 | 确保 Send Command 任务使用了适合您游戏的正确命令。验证时间偏移量小于重启任务的偏移量(例如,警告在 0 秒,重启在 300 秒)。 |
| 重启后服务器未重新上线 | 检查 GPanel Console 中的启动错误。如果服务器在关闭期间崩溃,它可能无法正常重启。尝试从 GPanel 手动 Start。如果问题持续存在,请提交工单。 |
| Cron 表达式未被接受 | GPanel 要求 cron 表达式正好包含 5 个字段(分钟、小时、日期、月份、星期)。不要包含秒数字段。确保没有多余的空格或特殊字符。 |
| 警告命令已发送但玩家看不到 | 某些游戏需要特定格式。对于 Project Zomboid,消息必须用引号括起来:servermsg "Your message here"。对于 Minecraft,say 不使用引号。请查看上面的游戏特定部分。 |
需要帮助?
如果您在设置定时重启时遇到问题或您的计划未按预期工作,请提交工单并包含:
- 您在 GPanel 中的服务器名称
- 您使用的 cron 表达式
- 正在发生(或未发生)的情况描述
我们的支持团队将帮助您正确配置计划。