Tengo una aplicación de servidor que quiero ejecutar cada vez que se ejecuta la computadora y, por lo general, este es el caso, excepto que a veces me doy cuenta de que se cerró por sí sola.
¿Hay un bat o script que pueda ejecutar para monitorear la aplicación y reiniciarla si se cierra?
Respuestas:
Esto no siempre funciona (depende de cómo se carga el programa), pero normalmente puede crear un archivo por lotes como este:
He usado el Bloc de notas como ejemplo.
Las líneas
son solo un retraso (de 10 segundos) para dar al usuario la oportunidad de abortar el proceso antes de que se inicie nuevamente.
La línea
no es necesario, pero registraría cada vez que el programa se cerrara a un archivo, por lo que podría ser útil diagnosticar el problema. mensaje cero si no lo hace
Tenga en cuenta que usted menciona que su programa no hace nada si ya se está ejecutando. Eso generalmente significa que la aplicación se inicia, detecta que ya se está ejecutando otra copia y se cierra de inmediato. Si ese es el caso, y su programa se está ejecutando antes de iniciar este archivo por lotes, entonces el lote se repetirá e intentará iniciar su programa cada diez segundos.
fuente
Según sus respuestas anteriores, lo que sugiero es que coloque ese comando en un archivo por lotes, luego configure ese archivo por lotes para que se ejecute como una tarea programada cada minuto. Prácticamente no hay gastos generales asociados con esto, y garantiza que su proceso se establezca independientemente de si está cerca para darse cuenta de que se detuvo.
fuente
Supongo que la respuesta correcta a esta pregunta depende de por qué quieres hacerlo. ¿Estás tratando de resolver el apagado accidental? ¿Prevenir el apagado "malicioso" por parte de los usuarios de la máquina (por ejemplo, empleados que cierran el software de monitoreo)? Prevenir ataques maliciosos graves y calificados? ¿Estás intentando escribir malware tú mismo (en cuyo caso, por favor, bájate ;-))?
Además, como han mencionado otros comentaristas, sería diferente si hubiera escrito un servicio de Windows (por ejemplo)
Personalmente, probablemente comenzaría escribiendo una segunda aplicación y comenzando de la misma manera. Tienen ambas aplicaciones pueden examinar por sí periódicamente y reinicie si es necesario - Asegúrese de que proporciona una manera fácil para que la aplicación se cierra legítimamente sin embargo!
Dicho esto, y dado su comentario "a veces me parece que se ha cerrado por sí solo", REALMENTE comenzaría tratando de averiguar por qué está cerrado ...
fuente
Puede usar un programa llamado ReStartMe 2.0 [ Mirror ] hace exactamente eso:
Supervisa los procesos y los reinicia si se cierran.
fuente
¡esto es mucho mejor! este es un código que he estado usando para un servidor de juegos minetest que debería guardarse en un archivo .bat
fuente