nathalem
Goto Top

Anwendung funktioniert nicht mehr - mit Powershell neustarten

Hallo zusammen,

ich habe eine Anwendung auf einem Server die sich regelmäßig weghängt.
1. sie schließt sich einfach
2. sie reagiert nicht
3. "Baum.exe funktioniert nicht mehr"

Ich habe hier im Forum Hilfe bekommen ein Script zu schreiben das Anwendungen automatisch neustartet wenn diese nicht reagieren.
Dieses habe ich entsprechend erweitert damit auch abgestürzte Anwendungen wieder neu gestartet werden.
Vermutlich muss ich nur in der 2. Zeile des abgebildeten Codeabschnittes das -responding durch etwas anderes ersetzen aber ich finde die Lösung einfach nicht.
Ich hoffe ihr könnt mir helfen.


$proc = (Get-Process ([System.IO.Path]::GetFileNameWithoutExtension($appPath)) -EA SilentlyContinue)
if ($proc -ne $null -and !$proc.Responding){
write-host "Anwendung reagiert nicht, versuche einen Neustart"
Stop-Process -processname EXC* -Force
Start-Process $appPath
write-host "Anwendung wurde neu gestartet"
}

Content-ID: 265741

Url: https://administrator.de/contentid/265741

Ausgedruckt am: 23.11.2024 um 02:11 Uhr

Doskias
Lösung Doskias 10.03.2015, aktualisiert am 12.03.2015 um 22:45:10 Uhr
Goto Top
Ich hoffe dir ist bewusst, dass du hier das Symptom bekämpfst und nicht die Ursache. ich würde (falls noch nicht getan) prüfen, wieso sich die Anwendung so verhält.Einfach die Anwendung immer neu starten ist in meinen Augen keine professionelle Lösung.
Nathalem
Nathalem 10.03.2015 um 06:39:53 Uhr
Goto Top
Ja damit hast du absolut recht. Das ist das Ergebnis aus überlasteten Entwicklern und einer relativ instabilen Umgebung. (alte Steuerungstechnik im weitesten Sinne)
114757
114757 10.03.2015 aktualisiert um 08:43:37 Uhr
Goto Top
Dieses habe ich entsprechend erweitert damit auch abgestürzte Anwendungen wieder neu gestartet werden.
Was heißt bei dir Abgestürzt ? Läuft der Prozess noch im Hintergrund ? Da gibt es diverse Möglichkeiten ..., auch wenn eine Anwendung aus mehreren gleichzeitigen Prozessen besteht.
Responding prüft ob das Hauptfenster der Anwendung innerhalb von 5 Sekunden antwortet, wenn nicht gibt Responding false zurück. Ist IMHO die einzige Möglichkeit festzustellen ob eine Anwendung noch auf Benutzereingaben reagiert. Alles andere würde benutzerdefinierte Erweiterungen der Anwendung benötigen um den Status festzustellen.

Also, wie schon erwähnt, kümmere dich lieber um die Ursache als um die Folgen, das macht wirklich mehr Sinn ...

Gruß jodel32
Nathalem
Nathalem 10.03.2015 um 21:17:30 Uhr
Goto Top
Ich habe weder Zugriff auf den Quellcode noch die skills das Problem zu beheben.

Responding gibt interessanterweise true zurück.

Nochmal allgemein.
Es gibt 3 mögliche Fehler :
Prozess stürzt vollständig ab und ist nicht mehr in der taskleiste.
Prozess reagiert nicht mehr (Windows Fehlermeldung)
Baum.exe funktioniert nicht mehr (Windows Fehlermeldung)

In den beiden letzten Fällen ist der Prozess Ansicht noch in der taskleiste.
Die ersten beiden Probleme deckt mein Script ab.

Ich werde heute Nacht probieren den Fehler über die ereignis Anzeige festzustellen.
Wenn die Fehlermeldung Auftritt dann wird ein error1003 ins log geschrieben. Ist zwar nicht so schön wie ich es gerne hätte aber läuft wahrscheinlich.

Wenn ihr noch eine Idee habt dann könnt ihr gerne Antworten.
114757
114757 11.03.2015 aktualisiert um 09:11:36 Uhr
Goto Top
Baum.exe funktioniert nicht mehr (Windows Fehlermeldung)
Meine Biber.exe funktioniert auch nicht mehr face-wink
Dazu sollte man wissen aus welchen Bestandteilen die Anwendung besteht welcher Prozess welchen aufruft (Parent-Child ...), und da wir deine Anwendung hier leider nicht kennen wird das ein schwieriges Unterfangen!
Nathalem
Nathalem 12.03.2015 um 22:44:42 Uhr
Goto Top
hat funktioniert wie ich es vor hatte. Wenn jemand mal das gleiche Problem hat kann er es versuchen über das auslesen eine eventlog Eintrages zu lösen