Este artículo presenta dos métodos confiables para crear un Servicio de Windows: usando el Símbolo del sistema (CMD) y el Non-Sucking Service Manager (NSSM). Aprenderás paso a paso, comparativas de funciones y mejores prácticas desde la perspectiva de técnicos y jugadores. Al final, podrás convertir cualquier aplicación común en un servicio de fondo estable y automatizado.
¿Alguna vez has querido que un programa siga ejecutándose incluso cuando ningún usuario ha iniciado sesión? O quizás administras un servidor de juegos y necesitas que permanezca activo sin dejar una sesión de escritorio abierta. La respuesta es un Servicio de Windows.
Un Servicio de Windows es un programa especial que opera detrás del telón del sistema operativo. No tiene ventana, ni entrada en la barra de tareas, y no requiere interacción del usuario. Los servicios son controlados por el Administrador de Control de Servicios (SCM), que se encarga de iniciar, detener y monitorear cada servicio. Lo más interesante: puedes configurar un servicio para que se ejecute desde el encendido del equipo, incluso antes de que inicies sesión.
Un jugador profesional o un técnico de sistemas no puede ignorar el poder de los Servicios de Windows. Esta es la base de la automatización en Windows.
Desafortunadamente, no todos los programas pueden convertirse directamente en un servicio. Las aplicaciones comunes suelen fallar porque no responden correctamente a los comandos de pausa o detención del SCM. Por lo tanto, necesitas métodos específicos. Las dos formas más efectivas son usando la utilidad integrada sc.exe (CMD) y la herramienta de terceros llamada NSSM. Ambas tienen sus propias ventajas. Analicemos cada una.
¿Qué es un Servicio de Windows y por qué crearlo?
Técnicamente, un Servicio de Windows se ejecuta en una sesión especial no interactiva (sesión 0) aislada del escritorio del usuario. Este aislamiento mantiene el servicio activo incluso cuando cierras sesión o cambias de usuario. El SCM almacena cada servicio en el registro en HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services. Allí encontrarás el tipo de inicio (automático, manual, deshabilitado), la cuenta de ejecución y las opciones de recuperación en caso de fallo.
¿Cuándo deberías crear tu propio Servicio de Windows? Estos son escenarios comunes para profesionales y jugadores:
- Ejecutar servidores dedicados de juegos (Minecraft, Valheim, ARK) para que el servidor esté en línea 24/7 sin necesidad de un escritorio.
- Automatizar scripts de respaldo hacia NAS o la nube.
- Monitorear recursos de red o temperaturas de componentes.
- Ejecutar bots de Discord o Telegram como servicios de fondo.
- Adaptar aplicaciones heredadas que necesitan operación continua sin intervención humana.
Antes de practicar, prepara el archivo ejecutable (.exe) o por lotes (.bat) que deseas convertir en servicio. Asegúrate de que el archivo haya sido probado y funcione normalmente al ejecutarlo directamente. No uses un archivo que requiera entrada continua de teclado, porque un servicio no tiene acceso a un escritorio interactivo (a menos que configures permisos especiales).
Método 1: Crear un Servicio de Windows usando CMD (sc.exe)
El Símbolo del sistema proporciona una poderosa herramienta llamada sc.exe (Controlador de Servicios). Esta utilidad está disponible desde Windows XP y no necesita instalación. Su desventaja es que sc.exe no admite el reinicio automático y no es amigable con aplicaciones con interfaz gráfica. Sin embargo, para escenarios simples como ejecutar scripts por lotes o aplicaciones de consola, este método es muy rápido.
Pasos detallados usando CMD
1. Abre CMD como administrador. Presiona la tecla Windows, escribe «cmd», haz clic derecho y selecciona «Ejecutar como administrador». Sin permisos de administrador, sc.exe no puede crear un servicio.
2. Escribe la sintaxis básica a continuación. Presta mucha atención a los espacios y las comillas.
sc.exe create <nombre_servicio> displayname= <nombre_mostrado> binpath= <ruta_del_ejecutable>
Explicación de parámetros:
- nombre_servicio : Nombre interno único, sin espacios. Ejemplo:
ServidorMinecraft. - nombre_mostrado : El nombre que aparece en Services.msc, puede incluir espacios. Ejemplo:
"Servidor Dedicado de Minecraft". - ruta_del_ejecutable : Ruta completa al archivo exe o bat. Si hay espacios, envuélvelo entre comillas dobles. Ejemplo:
"C:\Program Files\MiApp\servidor.exe".
3. Ejecuta un ejemplo real. Supongamos que tienes un archivo C:\MiAplicacion.exe y deseas nombrar el servicio «MiServicio».
sc.exe create "MiServicio" displayname= "Mi Servicio" binPath= "C:\MiAplicacion.exe"
Observa el espacio después del signo igual en displayname= y binpath=. Esta es una regla estricta de sintaxis de sc.exe. Si escribes displayname="Mi Servicio" sin espacio, el comando fallará con un error de sintaxis. Por lo tanto, debes ser preciso.

4. Verifica el servicio. Abre Services.msc (presiona Win+R, escribe services.msc). Busca el servicio con el nombre mostrado «Mi Servicio». Su estado será «Detenido». Haz clic derecho y selecciona Iniciar. Alternativamente, usa el comando sc start MiServicio.
5. (Opcional) Configura el inicio automático. Para que el servicio se ejecute al arrancar, ejecuta:
sc config "MiServicio" start= auto
Desventaja del método CMD: sc.exe no proporciona un mecanismo para reiniciar si el servicio falla. Si tu aplicación se detiene repentinamente, el servicio morirá y no volverá a levantarse. Para necesidades de producción o servidores de juegos que requieren alto tiempo de actividad, necesitas NSSM.
Método 2: Crear un Servicio de Windows usando NSSM (Non-Sucking Service Manager)
NSSM es una herramienta de código abierto diseñada específicamente para superar las «debilidades» de sc.exe. El nombre «Non-Sucking» indica que esta herramienta no es tan molesta como el método integrado. NSSM puede monitorear procesos hijos, reiniciar automáticamente y registrar la salida de la consola en un archivo. Esta herramienta es la favorita entre los técnicos de servidores y jugadores que ejecutan servidores de juegos modificados.
Pasos para usar NSSM (con interfaz gráfica completa)
1. Descarga NSSM. Visita el sitio oficial en nssm.cc/download. Elige la versión de 32 o 64 bits según tu arquitectura de Windows. Usa la última versión (en el momento de escribir, la 2.24).
2. Extrae en una carpeta permanente. Por ejemplo, crea C:\nssm y luego extrae el contenido del zip allí. Aparecerá una carpeta win64 o win32. No lo coloques en una carpeta temporal porque el archivo se usará continuamente mientras el servicio esté en ejecución.
3. Abre CMD como administrador. Cambia el directorio a la ubicación de nssm.exe. Ejemplo:
cd C:\nssm\win64
4. Lanza el instalador gráfico. Escribe el comando:
nssm install
Se abrirá una ventana gráfica. Esta es la principal ventaja de NSSM: no necesitas memorizar sintaxis compleja.

5. Completa la pestaña «Application». Esta sección es obligatoria:
- Path : Haz clic en el botón «…» y busca tu archivo exe/bat.
- Startup directory : La carpeta donde trabaja la aplicación (normalmente la misma carpeta del exe). Complétala para que la app no se confunda al buscar archivos de configuración.
- Arguments : Si la aplicación necesita parámetros, por ejemplo
--port 25565, escríbelos aquí. - Service name : Nombre interno del servicio. Usa un nombre único sin espacios.
6. Abre la pestaña «Details» (opcional). Completa el Display name (nombre mostrado) y Description (descripción). Esto te ayuda a identificar el servicio en Services.msc.
7. Abre la pestaña «Exit actions» – esta es la parte más crítica. NSSM te permite especificar acciones cuando la aplicación sale:
- Restart always : Reinicia el servicio cada vez que muere (sin importar el código de salida).
- Restart if exit code != 0 : Reinicia solo si ocurre un error.
- Take no action : Muere por completo, sin reinicio.
Para un servidor de juegos, elige «Restart always» con un retraso de 5 a 10 segundos. Este proseso (typo: proceso) garantiza el máximo tiempo de actividad.
8. Haz clic en el botón «Install service». NSSM registrará el servicio en el SCM. Verás un mensaje «Service ‘nombredelservicio’ installed successfully!».
9. Verifica e inicia el servicio. Abre Services.msc, busca tu servicio y haz clic en Iniciar. Alternativamente, desde CMD: nssm start nombredelservicio. Para ver la salida de la consola (stdout/stderr), abre la carpeta C:\nssm\logs por defecto.
Ventajas de NSSM que debes conocer
- Reinicio automático inteligente : Puede distinguir entre salida normal y fallo.
- Registro completo (logging) : Todo lo que la aplicación imprime en la consola se guarda en un archivo.
- Fácil edición del servicio : Solo
nssm edit nombredelserviciosin necesidad de desinstalar. - Eliminación segura del servicio :
nssm remove nombredelservicio confirm.
Comparativa rápida: sc.exe vs NSSM
| Aspecto | sc.exe (CMD) | NSSM |
|---|---|---|
| Disponibilidad | Integrado en Windows, sin instalación | Requiere descarga, extracción única |
| Soporte de reinicio automático | No (requiere configuración compleja con sc failure) | Sí, muy fácil mediante GUI |
| Registro de salida (logging) | No | Sí, automático a archivo |
| Facilidad para principiantes | Necesita memorizar sintaxis y espacios | GUI intuitiva |
| Ejecutar aplicaciones con GUI | A menudo falla | Posible con configuraciones especiales |
| Tamaño del archivo | ~50KB (integrado en el sistema) | ~300KB |
Si solo necesitas un servicio simple y no requieres reinicio automático, sc.exe es suficiente. Sin embargo, para alta confiabilidad, especialmente para servidores de juegos o bots críticos, NSSM es la elección correcta.
Consejos para gestionar Servicios de Windows y mantenerlos estables
Una vez que tu servicio esté en ejecución, debes monitorearlo y mantenerlo. Aquí tienes las mejores prácticas de técnicos experimentados:
- Usa una cuenta con privilegios mínimos. No uses LocalSystem si no es necesario. Crea una cuenta dedicada (por ejemplo,
svc_juego) con el derecho «Iniciar sesión como servicio». - Configura opciones de recuperación para servicios de sc.exe:
sc failure "nombre" reset= 86400 actions= restart/5000/restart/10000/restart/30000. Esto reiniciará el servicio después de 5 segundos si falla. - Monitorea los registros periódicamente. Para NSSM, los registros se almacenan en la subcarpeta logs. Para sc.exe, debes redirigir la salida de la aplicación a un archivo tú mismo.
- Prueba el servicio en modo consola antes de instalarlo. Asegúrate de que la aplicación se ejecute sin entrada del usuario.
- Documenta los cambios de configuración. Mantén una documentación sencilla para facilitar la resolución de problemas.
Cita de un profesional: «Uso NSSM para ejecutar un servidor comunitario de Minecraft. Con la configuración de reinicio automático, el servidor permanece en línea incluso cuando ocasionalmente falla debido a conflictos de mods. Mi tiempo de actividad alcanzó el 99,9% durante los últimos 6 meses.» – Andi, técnico de servidores de juegos.
Conclusión: elige el método adecuado para tus necesidades
Crear un Servicio de Windows no es complicado si comprendes los dos métodos principales. El Símbolo del sistema (sc.exe) ofrece rapidez y ausencia de instalación, adecuado para scripts simples y técnicos que aman la línea de comandos. Mientras tanto, NSSM proporciona reinicio automático, registro de eventos y facilidad de configuración, ideal para servidores de juegos, bots o aplicaciones que requieren alto tiempo de actividad.
Con la guía paso a paso anterior, ahora tienes el conocimiento para convertir casi cualquier aplicación de consola o por lotes en un Servicio de Windows confiable. Siempre prueba primero en un entorno que no sea de producción. ¡Feliz automatización de tu sistema!
¿Necesitas referencias adicionales? Visita la documentación oficial de Microsoft sobre el Administrador de Control de Servicios o el foro de NSSM para más discusión.


