我想制作一个在win32上运行的工具来监控我们的在线游戏服务器。服务器实际上是.exe文件。我需要知道它们是否已经崩溃所以我可以重新启动它们。因此,该工具将具有两个主要特征:
有没有人知道或知道API开始?
答案 0 :(得分:3)
如果您使用的是Win32,则可以使用System.Diagnostics
using System.Diagnostics;
然后获取进程列表:
Process[] processlist = Process.GetProcesses();
foreach(Process theprocess in processlist){
Console.WriteLine(“Process: {0} ID: {1}”, theprocess.ProcessName, theprocess.Id);
}
从那以后,由你决定要对信息做什么。
答案 1 :(得分:0)
游戏服务器应该生成日志。您应该创建服务/ cron作业来监视日志。取决于日志的内容,您的服务应该采取相应的行动,例如重启服务,触发警报等
答案 2 :(得分:0)
我意识到这不是完全你所要求的,但是使用Nagios这样一个成熟的监控工具进行监控呢?您当然必须“教导”监控工具有关应监控的流程,但您也可以从其更高级的功能中获益。例如,对于Nagios,这些将包括自动电子邮件通知,过程状态的在线仪表板,通过短信通知等。
答案 3 :(得分:0)
您应该在win32 api中使用CreateProcess或类似功能启动游戏服务器。 您将在lpProcessInformation参数中找回进程句柄。
您可以使用WaitForSingleObject等待WaitForMultipleObjects,直到通知该句柄,当进程因任何原因终止时将会发生这种情况。