Para ejecutar una aplicación, se debe iniciar un archivo por lotes (que hace cosas como iniciar Jetty, mostrar registros en vivo, etc.). La aplicación solo funcionará si este archivo por lotes se está ejecutando. Por lo tanto, me veo obligado a ejecutar este archivo por lotes y no cerrar sesión en 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 .
windows
windows-services
batch-file
publicRavi
fuente
fuente
Respuestas:
NSSM es totalmente gratuito e hiperfácil, ejecuta el símbolo del sistema / terminal como administrador:
entonces aparecerá un cuadro de diálogo para que pueda elegir dónde está el archivo que desea ejecutar.
para desinstalar
fuente
nssm
todos los argumentos necesarios en la entrada para evitar la entrada de datos emergentes? ¿Estoy tratando de automatizar el proceso?¿Por qué no simplemente configurarlo como una Tarea Programada que está programada para ejecutarse al inicio?
fuente
Hay un cmd de Windows incorporado para hacer esto: sc create . No es tan sofisticado como nssm, pero no tiene que descargar una pieza adicional de software.
Nota
=
fuente
No hay necesidad de software adicional. Use el programador de tareas -> crear tarea -> oculto. La casilla de verificación para oculto está en la esquina inferior izquierda. Configure la tarea para que se active al iniciar sesión (o cualquier condición que desee) y elija la tarea en la pestaña de acciones. Ejecutarlo oculto asegura que la tarea se ejecute silenciosamente en segundo plano como un servicio.
Tenga en cuenta que también debe configurar el programa para que se ejecute "si el usuario ha iniciado sesión o no" o el programa seguirá ejecutándose en primer plano.
fuente
Como dice Doug Currie, use RunAsService.
De mi experiencia pasada debes recordar que el Servicio que generes
No estoy seguro si el último todavía se aplica ... fue una gran yegua nocturna en un proyecto en el que trabajé hace algún tiempo.
fuente
Si bien no es gratis (pero $ 39), FireDaemon ha funcionado tan bien para mí que tengo que recomendarlo. Ejecutará su archivo por lotes, pero tiene un montón de funcionalidades adicionales y muy útiles, como la programación, la supervisión del servicio, la instalación de servicios basados en GUI o XML, dependencias, variables ambientales y gestión de registros.
Comencé a usar FireDaemon para iniciar 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 permitió deshacerme del archivo por lotes y recrear la intención de sus comandos en la definición del servicio FireDaemon.
También hay un SUPER FireDaemon llamado Trinity que es posible que desee ver si tiene una gran cantidad de servidores Windows en los que administrar este servicio (o técnicamente, cualquier servicio).
fuente
En Windows 2019 Server, puede ejecutar un servidor Minecraft java con estos comandos:
sc create minecraft-server DisplayName = "minecraft-server" binpath = "cmd.exe /CC:\Users\Administrator\Desktop\rungui1151.lnk" type = own start = auto
El archivo .lnk es un acceso directo estándar de Windows a un archivo por lotes.
--- comienza el archivo .bat ---
java -Xmx40960M -Xms40960M -d64 -jar minecraft_server.1.15.1.jar
--- finaliza el archivo .bat ---
Todo esto porque:
el servicio no sabe cómo comenzar en una carpeta,
cmd.exe no sabe cómo iniciar en una carpeta
Iniciar el servicio producirá un error de "manera oportuna", pero el archivo de registro revela que el servidor se está ejecutando.
Si necesita cerrar el servidor, simplemente vaya al administrador de tareas y encuentre el servidor java en procesos en segundo plano y finalícelo, o finalice el servidor desde el juego usando el comando / stop, o para otros programas / servidores, use los métodos relevante para el servidor.
fuente
AlwaysUp ejecutará fácilmente su archivo por lotes como un servicio. Es similar a FireDaemon (mencionado anteriormente) y no es gratuito, pero es posible que el conjunto de funciones enriquecidas sea un activo en un entorno profesional.
¡Buena suerte!
fuente