Crear servicio de Windows desde ejecutable

¿Hay alguna manera rápida de, dado un archivo ejecutable, crear un servicio de Windows que, cuando se inicia, lo inicie?

Para crear un servicio de Windows desde un ejecutable, puede usar sc.exe :

 sc.exe create  binPath= "" 

Debe tener comillas alrededor de la ruta del exe real, y un espacio después del binPath= .

Puede encontrar más información sobre el comando sc en Microsoft KB251192 .

Tenga en cuenta que no funcionará para cualquier ejecutable: el ejecutable debe ser un servicio de Windows ( es decir, implementar ServiceMain ). Al registrar un ejecutable que no sea de servicio como un servicio, recibirá el siguiente error al intentar iniciar el servicio:

Error 1053: el servicio no respondió a la solicitud de inicio o control de manera oportuna.

Existen herramientas que pueden crear un servicio de Windows a partir de ejecutables arbitrarios que no sean de servicio, consulte las otras respuestas para ver ejemplos de tales herramientas.

Use NSSM ( el administrador de servicios no Succión ) para ejecutar un archivo .BAT o cualquier archivo .EXE como un servicio.

http://nssm.cc/

  • Paso 1 : descarga NSSM
  • Paso 2 : Instale su servicio con la nssm.exe install [serviceName]
  • Paso 3 : Esto abrirá una GUI que usarás para ubicar tu ejecutable

Extendiendo (Kevin Tong) respuesta.

Paso 1: descarga y descomprime nssm-2.24.zip

Paso 2: desde el tipo de línea de comando:

C:\> nssm.exe install [servicename]

abrirá la GUI como a continuación (el ejemplo es el servidor UT2003), luego simplemente navegue hasta: yourapplication.exe

enter image description here

Más información en: https://nssm.cc/usage

Muchas respuestas existentes incluyen intervención humana en el momento de la instalación. Este puede ser un proceso propenso a errores. Si desea instalar muchos ejecutables como servicios, lo último que desea hacer es hacerlo manualmente en el momento de la instalación.

Hacia el escenario descrito anteriormente, creé serman , una herramienta de línea de comando para instalar un ejecutable como servicio. Todo lo que necesita para escribir (y solo escribir una vez) es un archivo de configuración de servicio simple junto con su ejecutable. correr

 serman install  

instalará el servicio. stdout y stderr están todos registrados. Para obtener más información, eche un vistazo al sitio web del proyecto .

Un archivo de configuración en funcionamiento es muy simple, como se demuestra a continuación. Pero también tiene muchas funciones útiles, como y continuación.

  hello hello This service runs the hello application node.exe  "{{dir}}\hello.js" rotate      

estos extras son útiles … deben ser ejecutados como administradores

 sc install  binpath= sc stop  sc queryex  sc delete  

Si su nombre de servicio tiene espacios, encierre “comillas”.

He probado un buen producto para eso: AlwaysUp . No es gratis, pero tienen un período de prueba de 30 días para que puedas probarlo …