Ich bin nicht vertraut damit, wie Prozesse in Windows beendet werden. Unter Linux sendet ein "warmer" Kill ein Signal (15), das der Prozess durch Instanziieren eines Signalhandlers verarbeiten kann. Ein Cold Kill ist das Signal (9), das das Betriebssystem verarbeitet, indem es den Prozess gewaltsam beendet.
Wie kann ich einen Prozess in Windows "beenden"? Wie wird es vom Betriebssystem und vom Prozess gehandhabt? Welche Aktionen führt das Betriebssystem aus? Gibt es eine plattformübergreifende Möglichkeit, auf eine Kill / Close-Anfrage zu antworten?
SIGTERM
, 9 istSIGKILL
.Antworten:
"Task beenden" (und
taskkill
) wird angezeigt, um eineWM_CLOSE
Nachricht an die Programmfenster zu senden. (Dasselbe geschieht, wenn Sie auf die ×Schaltfläche "Schließen" klicken .) Wenn das Programm nach einiger Zeit nicht beendet wird, wird der Benutzer aufgefordert, das Programm zwangsweise zu beenden."Kill Process" und
taskkill /f
verwendenTerminateProcess()
.quelle
ntsd -p <pid> -c q
, der denntsd
Debugger verwendet; Ich bin mir nicht sicher, was passiert, wenn ein Programm auf diese Weise beendet wird. ( stupst @Chris an )taskkill
beenden " verwendet werden könnte :) Ich habe es gerade versucht und es antwortet mit: "Dieser Prozess kann nur mit Gewalt beendet werden (mit / F-Option)." Also ja, die einzige Wahl istTerminateProcess()
.Sysinternals (jetzt Teil von Microsoft) bietet ein Dienstprogramm namens pskill an, mit dem über die Befehlszeile Prozesse auf dem lokalen System oder auf Remote-Systemen abgebrochen werden können.
Die übliche Methode zum Beenden von Prozessen in Windows in einer GUI-Umgebung ist die Verwendung des Task-Managers.
quelle
Mit Cygwin kannst du einen plattformübergreifenden Kill verwenden!
quelle