Programm Starten und überwachen

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von Manawyrm.

    Programm Starten und überwachen

    Hallo zusammen,

    ich bin derzeit ein wenig wieder am Programmieren in Windows Forms mit VB.Net
    Ich suche eine möglichkeit einen Prossez zu überwachen.

    Folgendes Problem:

    Ich habe einen ArmA2 OA Server auf meinen Windows Server am laufen.
    Jedoch gibt es da ein kleines Problem, gelegentlich gehen einige Personen mit selbstgebastelten Scripts oder gezogenden Scripts auf den Server um unfug an zu stellen. z.B. mal ebend 1000 Einheiten zu spawnen.
    Der server an sich hätte damit keine Probleme, doch die Software stürzt dabei ab und gibt keine Rückmeldung mehr.
    Dadurch erscheind bei mir einfahc die Meldung "Keine rückmeldung" ?( :cursing:

    Nun möchte ich das das Programm Automatisch neu startet.

    Als Dienst habe ich es bereits Probiert da läuft die Software leider nicht daher die lösung mit einen Programm.
    Ich hoffe ihr könnt mir bei meinen Problem helfen.

    Mfg.
    Paradox Paradoxon
    Also ich habe jetzt folgendes:

    VB.NET-Quellcode

    1. Dim p As New Process()
    2. p.StartInfo.FileName = "D:\Gaming und VOIP Server\Arma 2 Server\24. Platoon - Arma 2 Server\2302 - Public Server2\ARMA2OASERVER.exe"
    3. p.StartInfo.WindowStyle = ProcessWindowStyle.Normal
    4. p.StartInfo.Arguments = "-name=player -config=server.cfg -port=2312 -cpuCount=4"
    5. p.Start()


    Ist das soweit richtig?

    Falls ja,
    Wie baue ich nun das mit den Responding ein?

    If p.Responding = false Than

    p.kill()

    p.start()

    end if

    So?
    Ja, jedoch würden dann viele nichtmehr den Server erreichen können.

    Ich müsste Jede Modifikation eintragen mit ihren .key

    Bei Arma gibt es modifikationen die alle mit einen biskey ausgestattet werden, diesen key muss man in seinen Server hinterlegen.
    Jedoch gibt es keine Datenbank mit diesen Key, das heißt ich müsste jede modifikation erst downloaden und dort den Key nehmen und auf meinen Server packen.

    Daher nehme ich lieber in kauf das gelegentlich einige Schadscripte den Server zum Absturz bringen.
    Es passiert ja nicht jeden Tag. Vieleicht 1-4 mal im Monat.

    Nur wenn ich länger nicht nachschaue kanne s passieren das der server dann tagelang nicht da ist.
    Daher brauche ich ein PRogramm was ein wenig aufpasst.
    Timer oder Systemevents?

    Kannst du das an einen beispiel verdeutlichen?


    Edit:
    Habe mal etwas Probiert. Wäre das so möglich?

    VB.NET-Quellcode

    1. Imports System.Console
    2. Module Module1
    3. Dim p As New Process()
    4. Sub Main()
    5. Console.WriteLine("Starte ArmA2 OA Server")
    6. p.StartInfo.FileName = "D:\Gaming und VOIP Server\Arma 2 Server\24. Platoon - Arma 2 Server\2302 - Public Server2\ARMA2OASERVER.exe"
    7. p.StartInfo.WorkingDirectory = "D:\Gaming und VOIP Server\Arma 2 Server\24. Platoon - Arma 2 Server\2302 - Public Server2\"
    8. p.StartInfo.Arguments = "-name=player -config=server.cfg -port=2312 -cpuCount=4"
    9. p.StartInfo.WindowStyle = ProcessWindowStyle.Normal
    10. p.Start()
    11. Console.WriteLine("ArmA2 OA Server fährt hoch!")
    12. wait:
    13. Console.WriteLine("Warte")
    14. System.Threading.Thread.Sleep(20000)
    15. Console.WriteLine("Teste ob Server noch läuft")
    16. Test()
    17. GoTo wait
    18. End Sub
    19. Sub Test()
    20. If Not p.Responding Then
    21. Console.WriteLine("ARMA SERVER OFFLINE! STARTE NEU!")
    22. p.Kill()
    23. p.StartInfo.FileName = "D:\Gaming und VOIP Server\Arma 2 Server\24. Platoon - Arma 2 Server\2302 - Public Server2\ARMA2OASERVER.exe"
    24. p.StartInfo.WorkingDirectory = "D:\Gaming und VOIP Server\Arma 2 Server\24. Platoon - Arma 2 Server\2302 - Public Server2\"
    25. p.StartInfo.Arguments = "-name=player -config=server.cfg -port=2312 -cpuCount=4"
    26. p.StartInfo.WindowStyle = ProcessWindowStyle.Normal
    27. p.Start()
    28. Console.WriteLine("ArmA2 OA Server fährt hoch!")
    29. Else
    30. Console.WriteLine("ArmA2 OA Server läuft ohne Probleme!")
    31. End If
    32. End Sub
    33. End Module

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Paradox Paradoxon“ ()