Este artículo explica cómo transformar un proceso en servicio en Windows Server. Supongamos que hemos desarrollado una aplicación Java que provee cierto servicio, o implementa un demonio (proceso que corre en segundo plano), y deseamos crear un servicio de Windows para gestionar la ejecución del mismo. Para ello es posible recurrir a la herramienta srvany.exe provista por el Windows Resource Kit de Windows Server 2003.



En mi caso en particular, necesité correr como servicio un pequeño demonio desarrollado en lenguaje Java, que desarrolla ciertas tareas en segundo plano. El mismo está implementado por la clase Demonio.class.

Para crear un nuevo servicio en Windows se debe ejecutar el wizard srvinstw.exe:

Seleccionar la opción para instalar un servicio en la máquina local:

Luego especificar un nombre para el servicio, en este ejemplo "Demonio":

En el siguiente paso, es necesario especificar la ruta al ejecutable srvany.exe:

Nota: es posible descargar srvany.exe desde este enlace.

Se indica que el servicio es su propio proceso:

En este caso se utiliza la cuenta de sistema, pero es posible utilizar cualquier otra:

En el siguiente paso se debe especificar el modo de inicio del servicio. Si se desea que inicie automáticamente al iniciar el sistema, seleccionar el modo "Automatic":

Finalizar e instalar el servicio:

A continuación se deben agregar las entradas de registro necesarias para iniciar el demonio Java. De esta forma se indica a srvany.exe qué programa debe ejecutar y con qué parámetros.

Abrir el editor de registro (regedit.exe) y realizar las siguientes modificaciones:

  1. Buscar la clave HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Demonio.
  2. Crear la clave "Parameters".
  3. Dentro de la clave "Parameters" crear los siguientes registros de tipo "String":
    1. "AppDirectory": Directorio de instalación de la aplicación.
    2. "Application": Aplicación a ejecutar, en este caso "javaw" (Java application launcher).
    3. "AppParameters": Parámetros de la aplicación a ejecutar, en este caso se debe lanzar la clase "Demonio" (correspondiente ocn el archivo Java compilado Demonio.class).

La configuración debe quedar tal como se observa en las siguientes capturas:

Ya está todo listo para iniciar el servicio. Ejecutar el gestor de servicios services.msc:

Iniciar el servicio "Demonio" presionando "start":

Luego de iniciado el servicio, es posible abrir el administrador de tareas y comprobar que el proceso "javaw.exe" se encuentra en ejecución:

Referencias

Windows Server 2003 Resource Kit Tools


Tal vez pueda interesarte


Compartí este artículo