Si alguna vez ha navegado por el Administrador de tareas, es posible que se haya preguntado por qué hay tantos procesos de Service Host ejecutándose. No puedes matarlos, y seguro que no los iniciaste. Entonces, ¿qué son?
El proceso Service Host sirve como shell para cargar servicios desde archivos DLL. Los servicios se organizan en grupos relacionados y cada grupo se ejecuta dentro de una instancia diferente del proceso de host de servicio. De esa manera, un problema en una instancia no afecta a otras instancias. Este proceso es una parte vital de Windows que no puede evitar que se ejecute.
Este artículo es parte de nuestra serie en curso que explica varios procesos que se encuentran en el Administrador de tareas, como dwm.exe, ctfmon.exe, mDNSResponder.exe, conhost.exe, rundll32.exe, Adobe_Updater.exe y muchos otros. ¿No sabes cuáles son esos servicios? ¡Mejor empieza a leer!
¿De qué vamos a hablar?
Entonces, ¿cuál es el proceso de host de servicio?
Aquí está la respuesta, según Microsoft:
Svchost.exe es un nombre de proceso de host genérico para servicios que se ejecutan desde bibliotecas de vínculos dinámicos.
Pero eso realmente no nos ayuda mucho. Hace algún tiempo, Microsoft comenzó a cambiar gran parte de la funcionalidad de Windows de depender de los servicios internos de Windows (que se ejecutaban desde archivos EXE) a usar archivos DLL en su lugar. Desde una perspectiva de programación, esto hace que el código sea más reutilizable y posiblemente más fácil de mantener actualizado. El problema es que no puede iniciar un archivo DLL directamente desde Windows de la misma manera que puede hacerlo con un archivo ejecutable. En su lugar, se utiliza un shell que se carga desde un archivo ejecutable para hospedar estos servicios DLL. Y así nació el proceso Service Host (svchost.exe).
¿Por qué se están ejecutando tantos procesos de host de servicio?
Si alguna vez ha echado un vistazo a la sección Servicios en el Panel de control, probablemente haya notado que Windows requiere muchos servicios. Si cada servicio se ejecutara bajo un proceso de host de servicio, un error en un servicio podría derribar todo Windows. En cambio, están separados.
Los servicios se organizan en grupos lógicos que están relacionados de alguna manera y, a continuación, se crea una única instancia de host de servicio para hospedar cada grupo. Por ejemplo, un proceso de host de servicio ejecuta los tres servicios relacionados con el firewall. Otro proceso de host de servicio puede ejecutar todos los servicios relacionados con la interfaz de usuario, etc. En la imagen siguiente, por ejemplo, puede ver que un proceso de host de servicio ejecuta varios servicios de red relacionados, mientras que otro ejecuta servicios relacionados con llamadas a procedimientos remotos.
¿Hay algo que pueda hacer con toda esta información?
Sinceramente, no mucho. En los días de Windows XP (y versiones anteriores), cuando las PC tenían recursos mucho más limitados y los sistemas operativos no estaban tan ajustados, a menudo se recomendaba evitar que Windows ejecutara servicios innecesarios. En estos días, ya no recomendamos deshabilitar los servicios. Las PC modernas tienden a estar cargadas de memoria y procesadores de alta potencia. Agregue eso al hecho de que la forma en que se manejan los servicios de Windows en las versiones modernas (y qué servicios se ejecutan) se ha simplificado, y eliminar los servicios que cree que no necesita realmente ya no tiene mucho impacto.
Dicho esto, si observa que una instancia particular de Service Host, o un servicio relacionado, está causando problemas, como el uso excesivo continuo de CPU o RAM, puede verificar los servicios específicos que están involucrados. Eso al menos podría darle una idea de dónde comenzar a solucionar problemas. Hay algunas maneras de ver exactamente qué servicios están siendo alojados por una instancia particular de Service Host. Puede verificar las cosas dentro del Administrador de tareas o usando una excelente aplicación de terceros llamada Process Explorer.
Comprobar servicios relacionados en el Administrador de tareas
Si usa Windows 8 o 10, los procesos se muestran en la pestaña “Procesos” del Administrador de tareas por sus nombres completos. Si un proceso sirve como host para varios servicios, puede ver esos servicios simplemente expandiendo el proceso. Esto hace que sea muy fácil identificar qué servicios pertenecen a cada instancia del proceso de Service Host.
Puede hacer clic con el botón derecho en cualquier servicio individual para detener el servicio, verlo en la aplicación panel de control “Servicios” o incluso buscar en línea información sobre el servicio.
Si estás usando Windows 7, las cosas son un poco diferentes. El Administrador de tareas de Windows 7 no agrupaba los procesos de la misma manera, ni mostraba nombres de procesos regulares, solo mostraba todas las instancias de “svchost.exe” en ejecución. Tuvo que explorar un poco para determinar los servicios relacionados con cualquier instancia particular de “svchost.exe”.
En la pestaña “Procesos” del Administrador de tareas en Windows 7, haga clic derecho en un proceso “svchost.exe” en particular y luego elija la opción “Ir al servicio”.
Tsu volteará a la pestaña “Servicios”, donde se seleccionan los servicios que se ejecutan bajo ese proceso “svchost.exe”.
A continuación, puede ver el nombre completo de cada servicio en la columna “Descripción”, por lo que puede optar por deshabilitar el servicio si no desea que se ejecute o solucionar problemas de por qué le está dando problemas.
Comprobar servicios relacionados mediante Process Explorer
Microsoft también proporciona una excelente herramienta avanzada para trabajar con procesos como parte de su línea Sysinternals. Sólo tienes que descargar Explorador de procesos y ejecutarla: es una aplicación portátil, por lo que no es necesario instalarla. Process Explorer proporciona todo tipo de funciones avanzadas, y le recomendamos encarecidamente que lea nuestra guía para comprender Process Explorer para obtener más información.
Sin embargo, para nuestros propósitos aquí, Process Explorer agrupa los servicios relacionados en cada instancia de “svchost.exe”. Se enumeran por sus nombres de archivo, pero sus nombres completos también se muestran en la columna “Descripción”. También puede pasar el puntero del mouse sobre cualquiera de los procesos “svchost.exe” para ver una ventana emergente con todos los servicios relacionados con ese proceso, incluso aquellos que no se están ejecutando actualmente.
¿Podría este proceso ser un virus?
El proceso en sí es un componente oficial de Windows. Si bien es posible que un virus haya reemplazado el host de servicio real con un ejecutable propio, es muy poco probable. Si desea estar seguro, puede consultar la ubicación del archivo subyacente del proceso. En el Administrador de tareas, haga clic con el botón derecho en cualquier proceso de Host de servicio y elija la opción “Abrir ubicación de archivo”.
Si el archivo se almacena en su carpeta Windows / System32, entonces puede estar bastante seguro de que no está tratando con un virus.
Dicho esto, si aún desea un poco más de tranquilidad, siempre puede buscar virus utilizando su escáner de virus preferido. ¡Más vale prevenir que curar!