29 octubre 2008

Como instalar un servicio de Windows de forma rápida y sencilla

Supongamos que tienes una aplicación, un “.bat” o cualquier otro ejecutable que quieres convertir en un servicio de Windows y no tienes tiempo, ganas o simplemente no conoces la forma de interactuar con los APIs de Windows para crear dicho servicio.

Pues bien, hay una solución muy sencilla para crear el servicio que necesitas. Existe una pequeña, pero muy potente, herramienta diseñada en Java por un señor llamado Bill Giel allá por el año 2000, que funciona a las mil maravillas.

El programa se llama ServiceInstaller y voy a explicar en 3 sencillos pasos como instalarlo y utilizarlo:

1. Nos descargamos el programa ServiceInstaller. Como el link de la página oficial no funciona os pongo aquí otro link de descarga:


2. Lo instalamos.

3. Instalarmos nuestro servicio. Se pueden instalar los servicios desde un pequeño interfaz gráfico o bien con un comando pasándole ciertos parámetros. Aquí explicaré como se hace con el interfaz gráfico, pero quien quiera hacerlo por línea de comandos, tiene una explicación con ejemplo en el fichero readme.txt que hay en el directorio donde instalas el programa.

Para nuestro caso ejecutaremos el programa servinst desde el menú de inicio y veremos la siguiente UI:

SI Main Panel
Lo que rellenaremos en los campos será lo siguiente:
  • Service Name: El nombre por el cual se identifica el servicio. No puede contener espacios.
  • Display Name: El nombre con el que etiquetamos el servicio. Al ejecutar services.msc, éste será el nombre con el que se muestra.
  • Startup: La forma de iniciarse del servicio...
  • Dependencies: Si este servicio depende de algún otro servicio ya definido, añadimos aquí sus nombres separados por ‘;’.
  • Executable: La ruta del ejecutable que queremos lanzar como servicio.
  • Arguments: Si queremos pasarle algún argumento al ejecutable lo haremos en este campo.
  • Working Directory: El directorio de trabajo del servicio. Si no sabéis que poner aquí os recomiendo que pongáis la ruta del directorio donde se encuentra vuestro ejecutable.
Por último pinchamos en Install y si todo ha ido bien, ya tendremos nuestro servicio instalado y listo para funcionar, así de fácil.



Para desinstalar un servicio creado previamente con este programa basta con rellenar el campo Service Name con el nombre del servicio y pinchar en Remove. Si todo va bien, aparecera un mensaje de borrado satisfactorio.

La pega (si se puede sacar) de esta forma de instalar servicios es que necesitamos tener el programa ServiceInstaller permanentemente instalado para ejecutarlos, ya que hace de intermediario entre el API de Windows y nuestras aplicaciones.

Espero que os sirva la utilidad y le saquéis provecho.

También puedes acceder a la Web oficial de ServiceInstaller pinchando aquí.

17 comentarios:

  1. Muchas gracias por tu valioso aporte, me ha servido de mucho.

    ResponderEliminar
  2. Hola amiga , al instalar instlar el programa no encuentra la ruta de srunner .exe , t agradeceria verificaras ello.Saludos desde Perú.

    ResponderEliminar
  3. Hola amig@, para que te pueda ayudar mejor necesito que me des algún detalle más.

    Un error del estilo al que comentas ocurre cuando después de haber instalado los servicios, desinstalas el programa e intentas ejecutar los servicios.

    Ocurre porque cuando se instala un servicio con esta herramienta, se registra para que se ejecute a través de NTServiceInstaller(srunner.exe). Como el sistema no lo encuentra (si lo has desinstalado), lanza el error.

    Espero haberte ayudado. Si no van por ahí los tiros, espero más detalles de tu problema.

    ResponderEliminar
  4. Excelente aporte, se agradece.
    Saludos desde Jalisco, México

    ResponderEliminar
  5. Muchas gracias desde hace tiempo venia buscando una aplicación así y después de muchos intentos la encuentro.
    excelente aporte

    ResponderEliminar
  6. Hola me parece interesante lo probare y te cuento saludos ...
    desde Bogota D.C

    ResponderEliminar
  7. Muchas gracias por el aporte, lo voy a probar
    Pregunta: Sirve para Windows2008 x64

    ResponderEliminar
  8. Yo lo he probado en Windows 2008 Server de 32 bit y funciona perfectamente.

    Si en 64 bits no te funciona la instalación del programa puedes instalarlo en un SO de 32 y simplemente copiando la carpeta de instalación en el de 64, el programa también funciona.

    ResponderEliminar
  9. Ohhhh!! simplomente maravilloso, igualmente lo venia buscando pues con las herramientas de microsoft nomas naa que me saliera, GRACIAS!!!

    ResponderEliminar
  10. GRACIAS.. Me sirvió mucho!

    ResponderEliminar
  11. Oye aqui si el programa se cierra por x error
    se vuelve a ejecutar automaticamente?

    ResponderEliminar
  12. lo siento, pero tengo que decirte que esta infectado

    ResponderEliminar
  13. Hola, No lo he utilizado pero agradecería, Conocer lo siguiente: Se instala de donde vas a cargar el Servicio o puedes instalarlo en una estación de trabajo y desde ahí puedes mandar el Servicio al equipo que deseas? Agradecere tu ayuda. Saludos Mex D. F.

    ResponderEliminar
  14. Hola, excelente aporte. Tengo una duda, poseo un xp desatendido el cual en la instalacion no pone el SrService (restauracion de sistema) ¿podrías guiarme como implementarlo?. He tratado de todo y sin exito.

    Un saludo.

    ResponderEliminar
  15. Esta raro que el link de la pagina oficial no funcione , no sera el tuyo un virus?

    ResponderEliminar
    Respuestas
    1. ¿No serás un troll?

      Te responderé que NO es un virus, aunque el link es antiguo y ha dejado de funcionar así que no vas a poder descargarte la herramienta.

      Otra alternativa al software que proponía puede ser: http://nssm.cc/

      Eliminar