Fragensteller
Wie kann man provozieren, dass ein Programm sich aufhängt, um taskkill (CMD) zu testen?

Frage
-
Mittels Verknüpfung soll man ein Bordmitteltool erstellen können, das Prozesse abschießt, die nicht mehr reagieren:
C:\Windows\System32\taskkill.exe /F /FI “STATUS eq NOT RESPONDING"
Jenseits dem Berechnen der Fakultät von 10000 via calc.exe unter Windows 7/8 oder Old Calculator bei Windows 10: Welche Möglichkeit habe ich, dies zu testen? Die Verknüpfungsdatei beendet meist bei mir jedenfalls keine Programme, selbst wenn diese Keine Rückmeldung anzeigen. Mit übergroßen RTF-Dokumenten für Wordpad, die dieses zum Aufhängen bringen, hatte ich keinen Erfolg.
Kennt jemand eine Möglichkeit, dass ich das Aufhängen eines Programms provoziere, in dessen Folde taskkill mit genannter Parameterfolge Wirkung zeigt?
Alle Antworten
-
/FI “STATUS eq NOT RESPONDING" <= ist keine sichere Methode und findet deshalb fast nichts.
Not Responding wird von Windows indirekt und nur im Dialog festgestellt, dass an das Hauptfenster des Prozesses eine Nachricht gesendet und auf eine Antwort gewartet wird. Hierbei ist es schon manchmal schwierig, genau dieses Fenster überhaupt erst zu finden.Im Dialog, also während der Anzeige passiert dies z.B. durch einen Klick auf ein Fenster.
Also eine automatische Bereinigung, so wie du das möchtest mit "/FI" wird so nicht möglich sein und im Dialog fragt dich Windows ja sowieso, ob der Prozess gekillt werden soll.
Probieren kannst du dies ggf. mit Sysinternals ProcessExplorer in dem du da einen ausgewählten Prozess mal "suspendierst" (rechte Maustaste).
-
Danke für die Antwort. Habe es mit Process Explorer probiert, das Suspendieren führte beim Browser Basilisk und beim Mediaplayer VLC nicht zum Erfolg. Hättest du sonst noch eine Idee, um taskkill wie beschrieben zu testen?
Mit dem Windows-Ressourcenmonitor kann man ebenfalls suspendieren (anhalten), dies hilft bei Prozessen ebenfalls bei mir nichts. -
Ich sagte ja, die Erkennung eines nicht reagierenden Prozesses ist fast unmöglich (außer durch Windows-Messaging, bei z.B. "Anwendung reagiert nicht mehr" was aber nicht heißt, dass diese gerade nichts tut nur weil sie Nachrichten nicht bearbeitet). Deshalb schlägt der Filter nicht zu.
Wenn die Berechtigung i.d.R. ausreicht, kann man per "taskkill /f /pid 12345" einen Prozess abschießen. Ob der Prozess wirklich festhing kann man ja fast nicht feststellen.
Und gegebenenfalls prüft taskkill eben auch suspendiert, da dieser Status bei Serviceprozessen mal durchaus auftreten kann (mehrere Prozesse für eine gemeinsame Aufgabe, die über queueing nach Bedarf freigegeben werden).
- Bearbeitet Der Suchende Sonntag, 9. September 2018 09:14
-
Ich hätte das Suspendieren also auf svchost.exe anwenden sollen statt auf basilisk.exe und vlc.exe, damit hätte es funktioniert?
Der im Startpost genannte Befehl funktioniert aber grundsätzlich schon unter Windows 7, 8 und 10, wenngleich selten, oder? -
/FI (also Find) dient eher dazu andere Werte zu finden (Titel, User, ...) als den Status.
Ehrlich gesagt hat mich taskkill noch nie interessiert.
Bisher habe ich nicht funktionierende Anwendungen (wie gsagt, blabla reagiert nicht mehr...) mit den normalen Taskmanager-Methoden beendet.
Eine andere Notwendigkeit für eine Batchüberwachung bestand nicht.Für meine eigenentwickelte Software habe ich da spezielle angepasste Methoden, mit den der Anwender aber auch nichts mehr zu tun hat.