Guía

Un servicio atascado en Deteniendo...

El complemento muestra Deteniendo y no se mueve. La respuesta habitual es el Administrador de tareas, adivinar en qué svchost.exe vive y Finalizar tarea, que termina también todos los demás servicios de ese proceso sin decirle cuáles eran.

Por qué ocurre

  • El servicio no responde a la solicitud de detención. Windows se lo pide con educación y espera. Un servicio que se ha colgado, o que espera algo que no volverá, nunca responde.
  • Algo que depende de él sigue en ejecución. El administrador rechaza la detención en lugar de romper lo otro, y el complemento lo muestra como una espera.
  • Comparte su proceso con otros. La mayoría de los servicios de Windows viven dentro de un svchost.exe compartido. Terminar ese proceso los termina a todos, que es exactamente lo que hace el Administrador de tareas sin nombrarlos.

Mire antes de terminar nada

Pregunte qué se llevaría consigo terminarlo. No ocurre nada hasta que quite --dry-run.

$ bws kill Spooler --dry-run

La vista previa nombra el proceso por su número, nombra cada otro servicio que vive en él y muestra dos pasos en lugar de uno: pedir al servicio que se detenga y, solo si eso no funciona, terminar el proceso. Un servicio que se detiene por sí solo nunca se termina.

  • --force omite el paso cortés y termina el proceso de inmediato. Cambia el plan y no su ejecución, de modo que la vista previa muestra un paso en lugar de dos y la diferencia es visible antes de que ocurra nada.
  • --restart lo devuelve todo a su sitio una vez desaparecido el proceso: la entrada por la que preguntó y todo lo que compartía su proceso. Sin él, el equipo queda con esos servicios detenidos, y el informe dice cómo volver a iniciarlos.
  • El rechazo llega antes del botón. Un controlador, un proceso que el sistema protege, un servicio para el que el administrador no acepta una detención: se rechazan al construir el plan, con la razón, en lugar de tras una espera de sesenta segundos.
  • Una advertencia cuando importa. Si la entrada es una sin la cual el equipo no funciona, el plan lo dice: detenerla derriba el equipo, no solo el servicio.

Terminar un proceso es lo único que hace esta herramienta que nadie puede rechazar en nombre del equipo. Por eso es un comando propio, por eso la vista previa nombra cada servicio que se lleva consigo y por eso el paso cortés va primero salvo que usted diga otra cosa.

El orden más seguro

  1. Ver qué es. bws show Spooler: el proceso, lo que depende de él, de qué depende y si acepta siquiera solicitudes de detención.
  2. Probar la detención normal, como plan. bws stop Spooler --dry-run --dependents. Si la respuesta es un rechazo, dice cuál de las tres razones es.
  3. Si no se detiene, mirar lo que cuesta terminarlo. bws kill Spooler --dry-run, y leer la lista de servicios que comparten ese proceso.
  4. Después hacerlo, con un camino de vuelta. bws kill Spooler --restart. El informe termina con lo que no funcionó y los comandos que lo devuelven todo a su sitio.

Los cuatro funcionan igual en la ventana: clic derecho en una fila, elegir Force stop..., leer el plan, y el botón de debajo lleva el nombre de lo que hará.

Por qué no usar simplemente el Administrador de tareas

Porque responde a otra pregunta. El Administrador de tareas conoce procesos y este problema trata de servicios, y ambos no se corresponden uno a uno.

Un svchost.exe compartido puede alojar una docena de servicios. El Administrador de tareas lo terminará sin decir cuáles doce, ninguno vuelve por sí solo y nada le dice después qué se detuvo. Un EDR que marca un proceso que termina svchost.exe hace su trabajo, y no puede distinguir su clic de cualquier otro.