ゲームサーバーの信号

信号は、例外イベントの発生をホスト OS にレポートする方法です。信号タイプは、イベントの処理方法をホスト OS に伝えます。このセクションでは、一般的な信号の使用と、Multiplay Hosting がそれらに反応する方法に関するガイダンスを提供します。

警告: 以下の信号は、Linux ベースの OS で実行されているゲーム専用です。

SIGTERM

SIGTERM は、プロセス終了をトリガーするジェネリック信号です。SIGKILL に似ていますが、プロセスがこれをブロック、処理、または無視できる点が異なります。SIGTERM は、プロセスに終了を丁寧にリクエストする方法と考えることができます。

Multiplay Hosting は、サーバーの停止 時に実行可能ビルドプロセスに SIGTERM 信号を送信します。実行可能ビルドは、終了 することで SIGTERM 信号に反応する必要があります。実行可能ビルドプロセスが 20 秒以内に SIGTERM 信号に反応しない場合は、SIGKILL コマンドを受信します。

ノート: Windows に SIGTERM と同等のものはありません。

SIGKILL

SIGKILL は、プロセスが即時に終了する原因となるジェネリック信号です。SIGTERM に似ていますが、プロセスはこれをブロック、無視、または処理できます。SIGKILL は常にプロセスを終了します。

Multiplay Hosting は、実行可能ビルドプロセスが 20 秒以内に SIGTERM 信号に反応できない場合に、SIGKILL 信号を使用してそれを終了します。

ノート: Windows で SIGKILL と同等のものは PROCESS_TERMINATE です。

SIGSEGV

SIGSEGV は、アクセスできないメモリの場所にアクセスしようとした結果、セグメンテーションエラーになるプロセスに送信される信号です。SIGSEGV 信号のいくつかの一般的なトリガーには、null ポインターの逆参照、バッファのオーバーフロー、無効な権限があります。

Multiplay Hosting は、プロセスが 動作不良 であることを検出した場合に、実行可能ビルドプロセスに SIGSEGV 信号を送信します。通常、これはプロセスが使用しているメモリ (または CPU) が多すぎるか、アクセス権のないメモリにアクセスしようとしていることを意味します。

ノート: Multiplay Hosting は、SIGSEGV 信号を他の割り込み信号 (SIGSTOP など) の代わりに使用します。他の信号はコアダンプをトリガーしないか、ゲームエンジンに問題を引き起こすためです。

ノート: Windows で SIGSEGV と同等のものは、PROCESS_QUERY_INFORMATION と PROCESS_VM_READ です。