2

オンラインゲームサーバーを監視するためにwin32で実行されるツールを作成したいと思います。サーバーは実際には.exeファイルです。再起動できるように、クラッシュしたかどうかを知る必要があります。したがって、ツールには2つの主な機能があります。

  1. サーバープログラムのリストを頻繁にチェックして、それらが実行されているかどうかを確認します
  2. クラッシュしたサーバーの実行可能ファイルを再度開きます

誰かが最初にAPIを知っているか、知っていますか?

4

4 に答える 4

3

Win32を使用している場合は、C#を使用して開始できます。System.Diagnostics

using System.Diagnostics;

次に、プロセスリストを取得します。

Process[] processlist = Process.GetProcesses();

foreach(Process theprocess in processlist){
     Console.WriteLine(“Process: {0} ID: {1}”, theprocess.ProcessName, theprocess.Id);
}

そしてそこから、あなたがその情報で何をしたいかはあなた次第です。

于 2012-06-01T10:15:28.430 に答える
0

ゲームサーバーはログを生成する必要があります。ログを監視するには、service/cronジョブを作成する必要があります。ログの内容に応じて、サービスはそれぞれのアクションを実行する必要があります。たとえば、サービスの再起動、アラームのトリガーなどです。

于 2012-06-01T10:28:16.787 に答える
0

これはあなたが求めていたものではないことを私は理解していますが、 Nagiosなどの本格的な監視ツールを使用して監視を行うのはどうですか?もちろん、監視対象のプロセスについて監視ツールに「教える」必要がありますが、より高度な機能からも利益を得ることができます。たとえば、Nagiosの場合、これらは自動電子メール通知、プロセスステータスのオンラインダッシュボード、SMS経由の通知などで構成されます。

于 2012-06-01T10:34:25.720 に答える
0

win32apiでCreateProcessなどを使用してゲームサーバーを起動する必要があります。lpProcessInformationパラメータでプロセスハンドルを取得します。

WaitForSingleObjectからWaitForMultipleObjectsを使用して、何らかの理由でプロセスが終了したときに発生するハンドルが通知されるまで待機できます。

于 2012-06-01T10:44:29.393 に答える