游戏服务器信号
信号是一种向主机操作系统报告异常事件发生的方法。信号类型告诉主机操作系统如何处理该事件。本节提供有关使用常见信号以及游戏服务器托管如何对其进行响应的指导。
警告:以下信号仅适用于在基于 Linux 的操作系统上运行的游戏。
SIGTERM
SIGTERM 是一种通用的信号,它会触发进程终止。它类似于 SIGKILL,只是进程可以阻止、处理或忽略它。您可以将 SIGTERM 视为一种礼貌地请求进程结束(终止)的方法。
游戏服务器托管在停止服务器时,会向构建可执行文件进程发送 SIGTERM 信号。构建可执行文件必须通过退出来响应 SIGTERM 信号。如果构建可执行文件进程在 20 秒内未响应 SIGTERM 信号,它将收到SIGKILL 命令。
Note: There’s no Windows equal to SIGTERM.
SIGKILL
SIGKILL 是一种通用的信号,它会导致进程立即结束(终止)。它类似于 SIGTERM,但进程无法阻止、忽略或处理它。SIGKILL 始终会终止进程。
游戏服务器托管使用 SIGKILL 信号来终止构建可执行文件进程,如果它们在 20 秒内未响应SIGTERM 信号。
Note: The Windows equal of SIGKILL is PROCESS_TERMINATE.
SIGSEGV
SIGSEGV 是发送给尝试访问不可访问内存位置的进程的信号,这会导致分段错误。一些更常见的 SIGSEGV 信号触发器包括取消引用空指针、缓冲区溢出和无效权限。
游戏服务器托管在检测到进程行为异常时,会向构建可执行文件进程发送 SIGSEGV 信号。通常,这意味着进程正在使用过多的内存(或 CPU)或正在尝试访问它无权访问的内存。
Note: Game Server Hosting uses SIGSEGV signals instead of other interrupt signals (like SIGSTOP) because other signals either don’t trigger a core dump or cause issues with the game engine.
Note: The Windows equivalents of SIGSEGV are PROCESS_QUERY_INFORMATION and PROCESS_VM_READ.