mostrar - Ejecutar archivo por lotes como un servicio de Windows
.bat mensaje emergente (5)
¿Por qué no simplemente configurarlo como una tarea programada que está programada para ejecutarse al inicio?
Para ejecutar una aplicación, se debe iniciar un archivo por lotes (que hace cosas como iniciar Jetty, mostrar registros activos, etc.). La aplicación funcionará solo si este archivo por lotes se está ejecutando. Por lo tanto, me veo obligado a tener este archivo por lotes en ejecución y no cerrar la sesión desde el servidor de Windows.
¿Se puede ejecutar este archivo por lotes como un servicio? Estoy experimentando con una de las sugerencias de una pregunta similar .
Como Doug Currie dice, usa RunAsService.
De mi experiencia pasada, debes recordar que el Servicio que generas
- tener un conjunto completamente diferente de variables de entorno
- debe ser inspeccionado cuidadosamente por problemas de derechos / permisos
- podría causar estragos si abre diálogos pidiendo cualquier tipo de entrada
no estoy seguro de si el último todavía se aplica ... era una gran yegua nocturna en un proyecto en el que trabajé hace algún tiempo.
Si bien no es gratuito (pero FireDaemon $ 39), FireDaemon ha funcionado tan bien que tengo que recomendarlo. Ejecutará su archivo de proceso por lotes pero tiene muchas funciones adicionales y muy útiles, como la programación, la supervisión del mantenimiento del servicio, la instalación de servicios basados en GUI o XML, dependencias, variables del entorno y gestión de registros.
Comencé usando FireDaemon para lanzar servidores de aplicaciones JBoss ( run.bat ) pero poco después me di cuenta de que la riqueza de las capacidades de configuración de FireDaemon me permitía deshacerme del archivo por lotes y recrear el propósito de sus comandos en la definición del servicio FireDaemon.
También hay un SUPER FireDaemon llamado Trinity que es posible que desee consultar si tiene una gran cantidad de servidores Windows en los que administrar este servicio (o, técnicamente, cualquier servicio).
NSSM es totalmente gratuito e hiperfácil, ejecutando el símbolo del sistema / terminal como administrador:
nssm install "YourCoolServiceNameLabel"
luego aparecerá un cuadro de diálogo para que pueda elegir dónde está el archivo que desea ejecutar.
para desinstalar
nssm remove "YourCoolServiceNameLabel"
AlwaysUp ejecutará fácilmente su archivo por lotes como un servicio. Es similar a FireDaemon (mencionado anteriormente) y no es gratuito, pero puede encontrar que las funciones enriquecidas se consideran un activo en un entorno profesional.
¡Buena suerte!