2008-10-03 18 views
6

Supongamos que tengo una aplicación de terceros que funciona en segundo plano, pero imprime todos los errores y mensajes en la consola. Esto significa que, actualmente, tenemos que mantener a un usuario conectado al servidor y reiniciar la aplicación (hacer doble clic) cada vez que reiniciemos.¿Cómo puedo ejecutar una aplicación CLI como un servicio de Windows?

No es tan genial.

que era una especie de seguro, que no había una manera fácil de hacer esto - un contenedor de servicio genérico, que puede ser configurado con un archivo de registro para stdout y stderr.

Comprobé svchost.exe, pero according to this site, es sólo para cosas de DLL. Lástima.

EDITAR: La aplicación debe iniciarse desde un archivo por lotes. FireDaemon parece hacer el truco, pero creo que es un poco exagerado, algo que se puede hacer en < 10 líneas de código Python ... Bueno, No inventado aquí ...

Respuesta

10

Salida srvany.exe desde el Resource Kit. Esto permitirá ejecutar cualquier cosa como un servicio.

Puede pasar parámetros en la definición del servicio a su ejecutable a través de srvany.exe por lo que podría ejecutar un archivo por lotes como un servicio por proponiéndose el registro de la siguiente manera:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService\Parameters] 
"Application"="C:\\Windows\\System32\\cmd.exe" 
"AppParameters"="/C C:\\My\\Batch\\Script.cmd" 
"AppDirectory"="C:\\My\\Batch" 

Nota: si configura estas claves en RegEdit en lugar de usar un archivo, solo necesita barras diagonales simples en los valores.

1

Echa un vistazo a FireDaemon. Existe una versión gratuita (FireDaemon Lite, creo) que solo permite instalar 1 servicio a la vez, pero esta es una herramienta muy útil para configurar los servicios. También envuelve los archivos por lotes correctamente, si es necesario.

0

En segundo lugar la opción firedaemon. Es posible que también desee establecer la opción para permitir que el servicio interactúe con el escritorio y así permitir que se muestre la ventana de salida de cli. Ya no ofrecen una versión gratuita, pero si busca firedaemon lite en la Web, puede encontrar la versión lite más antigua o ir a la ruta de pago.

4

Recomendaría NSSM: The Non-Sucking Service Manager.

EXE
  • 32/64-bit
  • de dominio público (!)
  • implementa correctamente los mensajes de parada de servicio, y envía la señal adecuada a sus solicitudes de apagado correcto.
Cuestiones relacionadas