¿Cómo puedo volver a abrir automáticamente un programa si finaliza, se cierra o falla?

¿Cómo puedo volver a abrir automáticamente un programa si finaliza, se cierra o falla?

Creé un programa Java JAR que debe estar ejecutándose todo el tiempo en la computadora. Si el programa está cerrado (ya sea porque el usuario lo cerró o porque falló), necesito volver a abrir el programa.

Ya logré iniciarlo automáticamente cada vez que inicio sesión en la computadora, pero ¿cómo puedo mantenerlo activo?

No estoy seguro de si esto debería ser una cuestión de programación o no. Después de todo, los programas de inicio automático no son una cuestión de programación, así que pensé que hacerlos persistentes podría ser un caso similar.

Respuesta1

Pon esto en un archivo .bat/ .cmd. Ajusta la javainvocación a tus necesidades. Inicie el archivo cmd desde el inicio automático. Asegúrate de usar java, no javaw, ya que deseas esperar hasta que termine antes de iniciarlo la próxima vez.

:start
"C:\Program Files\java\bin\java" -jar my.jar
goto start

Respuesta2

Hay varios programas que puedes utilizar para esto. Uno se llama Programas de control en ejecución (CRP). Esta es una muy buena herramienta para usar cuando se tiene este problema.

Aquí hay un enlace para eso.............

https://www.raymond.cc/blog/keep-application-running-by-automatically-rerun-when-closed/

Espero que esto responda a tu pregunta, si no, házmelo saber.

Respuesta3

Hay una pregunta en el desbordamiento de pila sobre cómo convertir un archivo .bat en un servicio:

https://stackoverflow.com/a/13294293

La mejor respuesta a esa pregunta es usar nssm (http://nssm.cc/). Cuando su archivo bat se convierte en un servicio, se reiniciará automáticamente cuando se cierre.

El uso para su propósito sería algo como lo siguiente dentro de un mensaje de administrador:

nssm install yourservicename yourbatfile.bat
nssm start servicename
nssm stop servicename

información relacionada