En el primer post, voy a mostrar cómo detener de un servicio bloqueado en Windows cuando se muestran en el estado de iniciando o deteniendo.
Muchas veces me ha pasado en mis labores de administrador de sistemas, el ir a detener un servicio bloqueado en un servidor o pc y encontrarme con que está en estado iniciando o deteniendo y haya que detenerlo manualmente. Para ello hay varias opciones, dependiendo de la «gravedad» del problema que lo esté causando.
Iré explicando todos los casos:
Parte común: Para todos los casos hay que hacer lo que detallo a continuación
Necesitamos saber el nombre del servicio que ejecuta el proceso, no el que aparece en la lista de servicios, sino el de sus propiedades. Si sabéis hacerlo podéis pasar directamente a los casos para matar el proceso, si no, sigue leyendo.
Lo único que hay que hacer es abrir la ventana de servicios, para ello abrimos la ventana de ejecutar:
Lo más sencillo es darle al botón de Windows del teclado y a la tecla «R» simultáneamente. Si no funciona o cualquier otra cosa, os explico como hacerlo manualmente:
- Si tenéis Windows XP/Server 2003, haced clic en el botón de inicio, clic en ejecutar y escribid el comando que pongo más abajo
- En el caso de que dispongáis de Windows Vista/7/Server 2008/Server 2008 R2 – Haced clic sobre el botón de inicio y poned en el cuadro de búsqueda el comando que está más abajo
- Por último, si tenéis Windows 8/8.1/10/Server 2012/Server 2012 R2 haced clic con el botón derecho del ratón sobre el botón de inicio y hacemos clic sobre Ejecutar.
En los tres casos hay que ejecutar el siguiente comando para abrir la ventana se servicios:
services.msc
Se abrirá la ventana con todos los servicios que tenemos en el sistema, en nuestro caso forzaremos las pruebas sobre el servicio de SQL Server Express. Lo primero es localizarlo en la lista de servicios.
Una vez lo tenemos localizado hay que averiguar el nombre del proceso, para ello hacemos clic con el botón derecho del ratón sobre el servicio. Aparecerá un submenú que se despliega, hacemos clic sobre propiedades.
Se nos abrirá la ventana de propiedades del servicio y nos fijamos en el nombre del servicio.
Caso 1: Detener el servicio matando el proceso desde el administrador de tareas
Una vez tenemos el nombre del servicio, abrimos el administrador de tareas.
Para abrirlo pues dos opciones sencillas, clic con el botón derecho sobre la barra de inicio (en un espacio vacío) y en el menú que se despliega, hacemos clic sobre Administrador de Tareas o haremos clic simultáneamente sobre control, alt y suprimir y clic sobre el administrador de tareas.
Una vez abierto, en la pestaña de detalles, localizamos el nombre del servicio que se mostraba antes y finalizamos la tarea. Si así hemos conseguido detenerlo genial, era la forma más sencilla, si no, toca pasar al siguiente paso.
Caso 2: Matar el proceso conociendo el ID
En el segundo caso lo que tendríamos que hacer es averiguar el ID del proceso y detenerlo manualmente. Para ello en la ventana del administrador de tareas en la que estábamos antes, vamos a la pestaña de detalles y localizamos el proceso igual que en el paso anterior, lo único que tendríamos que localizar en la columna PID, el ID que tiene ese proceso.
Una vez tenemos el PID, abrimnos la ventana de símbolo del sistema en modo administrador
- En Windows XP/Server 2003, haces clic en el botón de inicio, clic en ejecutar y escribimos «CMD»
- En Windows Vista/7/Server 2008/Server 2008 R2, hacemos clic sobre el botón de inicio y en el cuadro de buscar ponemos «CMD», en la lista aparecerá Símbolo del sistema, clic derecho y ejecutar como administrador.
- Por último, si tenemos Windows 8/8.1/10/Server 2012/Server 2012 R2 hacemos clic con el botón derecho del ratón sobre el botón de inicio y hacemos clic sobre Símbolo del Sistema (administrador).
y ejecutamos el siguiente comando:
taskkill /f /pid númerodePID
Caso 3: Detener el proceso obteniendo el PID manualmente
Si aun así no se detiene o lo más normal, que no aparezca en el administrador de tareas, la cosa se complica, pero no mucho más.
En este caso, lo que tendríamos que hacer es averiguar el ID del proceso de manera manual y luego matar el proceso. Para ello abrimos la ventana de símbolo del sistema en modo administrador, con el nombre del servicio que apuntamos en el primer intento, ejecutamos el siguiente comando:
sc queryex nombredelservicio
Nos devolverá varios datos del servicio que tenemos bloqueado y entre ellos y más importante en este caso el PID.
Una vez averiguado el identificador del proceso ya sólo es ejecutar el comando del segundo caso:
taskkill /f /pid númerodePID
Con esto ya habremos conseguido detener el servicio bloqueado en Windows que no conseguíamos detener.
Si al volverlo a iniciar o volverlo a detener sigue quedándose en ese estado, habría que indagar un poco más para averiguar que es lo que está provocando que el servicio no se inicie o detenga correctamente.