Leitfaden

Ein Dienst hängt bei Wird beendet...

Das Snap-in zeigt Wird beendet und bewegt sich nie. Die übliche Antwort ist der Task-Manager, ein Raten, in welchem svchost.exe er lebt, und Task beenden - was auch jeden anderen Dienst in diesem Prozess beendet, ohne zu sagen, welche das waren.

Warum das passiert

  • Der Dienst antwortet nicht auf die Beenden-Anforderung. Windows bittet ihn höflich und wartet. Ein Dienst, der hängt oder auf etwas wartet, das nicht zurückkommt, antwortet nie.
  • Etwas, das von ihm abhängt, läuft noch. Der Manager lehnt das Beenden ab, statt das andere kaputtzumachen, und das Snap-in zeigt das als Wartezeit.
  • Er teilt seinen Prozess mit anderen. Die meisten Windows-Dienste leben in einem gemeinsamen svchost.exe. Beendet man diesen Prozess, endet es für alle, und genau das tut der Task-Manager, ohne sie zu nennen.

Ansehen, bevor Sie etwas beenden

Fragen Sie, was das Beenden mitnehmen würde. Nichts geschieht, bis Sie --dry-run weglassen.

$ bws kill Spooler --dry-run

Die Vorschau nennt den Prozess mit seiner Nummer, nennt jeden anderen Dienst, der in ihm lebt, und zeigt zwei Schritte statt einem: den Dienst bitten, sich zu beenden, und nur wenn das nicht klappt den Prozess beenden. Ein Dienst, der von selbst anhält, wird nie beendet.

  • --force überspringt den höflichen Schritt und beendet den Prozess sofort. Es ändert den Plan und nicht dessen Ausführung, sodass die Vorschau einen Schritt statt zwei zeigt und der Unterschied sichtbar ist, bevor etwas geschieht.
  • --restart bringt alles zurück, sobald der Prozess weg ist - den Eintrag, nach dem Sie gefragt haben, und alles, was seinen Prozess teilte. Ohne es bleibt der Rechner mit diesen angehaltenen Diensten zurück, und der Bericht sagt, wie man sie wieder startet.
  • Die Ablehnung kommt vor der Schaltfläche. Ein Treiber, ein Prozess, den das System schützt, ein Dienst, für den der Manager kein Beenden annimmt - abgelehnt, wenn der Plan gebaut wird, mit Begründung, statt nach sechzig Sekunden Warten.
  • Eine Warnung, wenn es darauf ankommt. Ist der Eintrag einer, ohne den der Rechner nicht funktioniert, sagt der Plan das - ihn zu beenden legt den Rechner lahm, nicht nur den Dienst.

Einen Prozess zu beenden ist das Einzige, was dieses Werkzeug tut, wogegen niemand im Namen des Rechners Einspruch erheben kann. Deshalb ist es ein eigener Befehl, deshalb nennt die Vorschau jeden Dienst, den es mitnimmt, und deshalb kommt der höfliche Schritt zuerst, sofern Sie nichts anderes sagen.

Die sicherere Reihenfolge

  1. Sehen, was es ist. bws show Spooler - der Prozess, was von ihm abhängt, wovon er abhängt und ob er überhaupt Beenden-Anforderungen annimmt.
  2. Das gewöhnliche Beenden als Plan versuchen. bws stop Spooler --dry-run --dependents. Lautet die Antwort Ablehnung, sagt sie, welcher der drei Gründe es ist.
  3. Lässt er sich nicht beenden, ansehen, was das Beenden kostet. bws kill Spooler --dry-run, und die Liste der Dienste lesen, die diesen Prozess teilen.
  4. Dann ausführen, mit einem Weg zurück. bws kill Spooler --restart. Der Bericht endet mit dem, was nicht geklappt hat, und den Befehlen, die alles zurückbringen.

Alle vier funktionieren im Fenster genauso: Rechtsklick auf eine Zeile, Force stop... wählen, den Plan lesen, und die Schaltfläche darunter ist nach dem benannt, was sie tun wird.

Warum nicht einfach den Task-Manager nehmen

Weil er eine andere Frage beantwortet. Der Task-Manager kennt Prozesse, und dieses Problem betrifft Dienste, und beide entsprechen einander nicht eins zu eins.

Ein gemeinsamer svchost.exe kann ein Dutzend Dienste halten. Der Task-Manager beendet ihn, ohne zu sagen, welche zwölf, keiner kommt von selbst zurück, und nichts sagt Ihnen danach, was angehalten wurde. Ein EDR, der einen Prozess meldet, der svchost.exe beendet, macht seine Arbeit, und er kann Ihren Klick nicht von allem anderen unterscheiden.