Prozessüberwachungsdienst in Windows

1075
Ahmed Al Hafoudh

Ich brauche etwas, das im Hintergrund als Dienst ausgeführt wird (Windows), den definierten Prozess überwacht, und wenn Schwellenwerte überschritten werden, wird der Prozess erneut gestartet / angehalten / neu gestartet. (ähnliche Funktionalität von Rubygem " Gott " genannt)

Ich habe eine Netzwerkkamerasoftware, die als Server ausgeführt wird, aber die Ausführung als Windows-Dienst nicht unterstützt. Es reagiert auch einmal täglich nicht mehr. Wenn dies der Fall ist, kann ich feststellen, dass der Speicher unter 10 MB fällt. Normalerweise beträgt der Arbeitsspeicher etwa 20 bis 30 MB.

0

1 Antwort auf die Frage

1
James

If you are familiar with C# you could try using a background worker to monitor the process and restart it when you get problems.

E.g. something similar I have (for a GUI app) looks like the below

private void startServer() { if (this.CancellationPending == true) { Console.WriteLine("Termination of requested", thisServer.serverSettings.serverName); this.ReportProgress(100); this.Dispose(true); } else { try { thisServer.serverStatus = status.Starting; using (Process p = Process.Start(thisServer.serverStartInfo)) { thisServer.serverProc = p; p.WaitForInputIdle(thisServer.serverSettings.startupDuration.Milliseconds); thisServer.serverStatus = status.Running; while (p.Responding) { // happy days } thisServer.serverStatus = status.Unknown; try { p.Close(); thisServer.serverStatus = status.Offline; } catch { try { p.Kill(); thisServer.serverStatus = status.Offline; } catch { } } } reRun(); } catch { thisServer.serverStatus = status.Offline; ReportProgress(100, "Error encountered when attempting to launch executable. Please review server settings."); } } } 
Ich brauche etwas Eigenständiges. Nicht selbst entwickelt Aber es könnte klappen. Ich habe meine Gründe. Ahmed Al Hafoudh vor 12 Jahren 0