Un service bloqué sur Arrêt en cours...
Le composant enfichable affiche Arrêt en cours et ne bouge plus. La réponse habituelle est le Gestionnaire des tâches, une devinette sur le svchost.exe dans lequel il vit, et Fin de tâche - ce qui termine aussi tous les autres services de ce processus, sans dire lesquels c'étaient.
Pourquoi cela arrive
- Le service ne répond pas à la demande d'arrêt. Windows le lui demande poliment et attend. Un service qui s'est figé, ou qui attend quelque chose qui ne reviendra pas, ne répond jamais.
- Quelque chose qui en dépend tourne encore. Le gestionnaire refuse l'arrêt plutôt que de casser l'autre, et le composant enfichable l'affiche comme une attente.
- Il partage son processus avec d'autres. La plupart des services Windows vivent dans un
svchost.exepartagé. Terminer ce processus les termine tous, ce qui est exactement ce que fait le Gestionnaire des tâches sans les nommer.
Regarder avant de terminer quoi que ce soit
Demandez ce que le terminer emporterait avec lui. Rien n'arrive tant que vous n'ôtez pas --dry-run.
$ bws kill Spooler --dry-run
L'aperçu nomme le processus par son numéro, nomme chaque autre service qui y vit, et montre deux étapes plutôt qu'une : demander au service de s'arrêter, et seulement si cela ne marche pas, terminer le processus. Un service qui s'arrête de lui-même n'est jamais terminé.
--forcesaute l'étape polie et termine le processus tout de suite. Cela change le plan plutôt que son exécution, de sorte que l'aperçu montre une étape au lieu de deux et que la différence est visible avant que quoi que ce soit n'arrive.--restartremet tout en route une fois le processus disparu - l'entrée dont vous avez parlé et tout ce qui partageait son processus. Sans lui, la machine reste avec ces services arrêtés, et le rapport dit comment les redémarrer.
- Le refus vient avant le bouton. Un pilote, un processus que le système protège, un service pour lequel le gestionnaire n'accepte pas d'arrêt - refusés à la construction du plan, avec la raison, plutôt qu'après soixante secondes d'attente.
- Un avertissement quand cela compte. Si l'entrée est de celles sans lesquelles la machine ne fonctionne pas, le plan le dit - l'arrêter fait tomber la machine, pas seulement le service.
Terminer un processus est la seule chose que fait cet outil à laquelle personne ne peut s'opposer au nom de la machine. C'est pourquoi c'est une commande à part entière, pourquoi l'aperçu nomme chaque service qu'elle emporte, et pourquoi l'étape polie vient d'abord sauf si vous dites le contraire.
L'ordre le plus sûr
- Voir ce que c'est.
bws show Spooler- le processus, ce qui en dépend, ce dont il dépend, et s'il accepte les demandes d'arrêt. - Essayer l'arrêt ordinaire, comme un plan.
bws stop Spooler --dry-run --dependents. Si la réponse est un refus, elle dit laquelle des trois raisons c'est. - S'il ne s'arrête pas, regarder ce que coûte le terminer.
bws kill Spooler --dry-run, et lire la liste des services qui partagent ce processus. - Puis le faire, avec un chemin de retour.
bws kill Spooler --restart. Le rapport se termine par ce qui n'a pas marché et les commandes qui remettent les choses en place.
Les quatre fonctionnent de la même façon dans la fenêtre : clic droit sur une ligne, choisir Force stop..., lire le plan, et le bouton en dessous porte le nom de ce qu'il va faire.
Pourquoi ne pas simplement utiliser le Gestionnaire des tâches
Parce qu'il répond à une autre question. Le Gestionnaire des tâches connaît les processus et ce problème concerne les services, et les deux ne correspondent pas un à un.
Un svchost.exe partagé peut contenir une douzaine de services. Le Gestionnaire des tâches le terminera sans dire lesquels, aucun ne revient de lui-même, et rien ne vous dit ensuite ce qui s'est arrêté. Un EDR qui signale un processus terminant svchost.exe fait son travail, et il ne peut pas distinguer votre clic de tout autre.