¿Cómo puedo iniciar mi programa automáticamente si se bloquea en el servidor de Windows 2003? A veces, mi programa simplemente se bloquea, ¿hay alguna manera en las ventanas o configuraciones que puedo configurar?¿Cómo reiniciar el programa automáticamente si falla en Windows?
Respuesta
El enfoque habitual es ejecutar lo que se conoce como guardian proceso. Este es un proceso separado, a menudo un servicio, que supervisa el estado del proceso principal. Cuando el guardián detecta que el servicio principal ha muerto, lo vuelve a generar.
Según mi leal saber y entender, no existe una funcionalidad de Windows para hacer esto por usted.
Característica incorporada para servicios, pestaña Recuperación. –
Prefiero imaginar que el uso de la palabra "programa" implica que la pregunta se refiere a un programa de escritorio. –
Nah, un servicio es un verdadero ejecutor blooded. Solo un par de convenciones para mantener al usuario bajo control. –
Desafortunadamente no hay configuraciones en Windows para reiniciar automáticamente un programa normal cuando se bloquea.
¿Necesita interactuar activamente con la GUI de su aplicación? Algunos de los Service Wrappers (diseñados para ejecutar cualquier aplicación como un Servicio de Windows) supervisarán su aplicación y la reiniciarán cuando falle, pero asegúrese de investigar Session 0 Isolation para asegurarse de que no se interponga en el camino.
Puede usar alguna aplicación especial como BDV SystemEvents o cualquier otra. Le permite especificar la aplicación que se iniciará si se cierra alguna otra aplicación. Especifique la misma aplicación como una condición y como una acción y obtendrá los resultados esperados.
Aviso: ejecutar los archivos de murciélago auto-looping puede ser útil, pero a menos que sepa lo que está haciendo, pueden causar todo tipo de estragos. Esto funciona especialmente si los ejecuta al inicio. Usted ha sido advertido.
De todos modos. Acabo de recordar algo de mis 286 días, cuando jugué mucho con archivos BAT. Si se escribe el archivo
yourprogram.exe
some other event
el archivo BAT se ejecutará yourprogram, y luego hacer una pausa y esperar en el fondo hasta que el programa termine. Después de eso, ejecutará "algún otro evento". Esto solía ser un poco molesto si querías ejecutar varias cosas a la vez, pero aquí en realidad es útil. Al usar esto, es posible hacer que ejecute un ciclo que reinicie el programa (y vuelva a ejecutar el archivo bat) tan pronto como se cierre. Combine esto con https://superuser.com/questions/62525/run-a-completly-hidden-batch-file, y nunca lo verá suceder.
El archivo BAT final ("Restart.bat" en este ejemplo) quedará del siguiente modo:
c:\[location]\yourprogram.exe
wscript "C:\[location]\invisible.vbs" "C:\[location]\restart.bat"
Eso es todo. Inicie el programa (en el inicio a través de una tarea o incluso solo en la carpeta de inicio) con la línea 2, y esto debería resolver su problema :)
Ah, si quiere detener el ciclo, simplemente cambie el nombre del archivo de bat o ponga "//"delante de las dos líneas, guárdelo y salga del programa.
Si el programa que está ejecutando requiere derechos de administrador, la solución que encontré fue usar psexec (http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx) para ejecutar tanto el programa como el bate con privilegios elevados. En ese caso, la MTD se verá así:
c:\[location]\psexec -h c:\[location]\yourprogram.exe
c:\[location]\psexec -h wscript "C:\[location]\invisible.vbs" "C:\[location]\restart.bat"
entonces se corre el bate como administrador, o ejecutar la segunda línea (sin la parte psexec) del programador de tareas con privilegios elevados.TEN CUIDADO: ejecutarlo como un usuario normal y hacer clic en "no" en el indicador UAC me dio un BSOD, probablemente porque "no se puede ejecutar el programa debido a la falta de privilegios" un par de mil millones de veces o algo :)
Concepto agradable. Incluso podría evitar un archivo por lotes e invisible.vbs, y hacerlo en un VBScript, por ejemplo: 'Mantenga la calculadora abierta Establezca objShell = WScript.CreateObject ("WScript.Shell") ObjShell.run "calc.exe", 1, verdadero ObjShell.run (Wscript.ScriptFullName) – Jimadine
Estaba buscando algo similar. Hay dos opciones para manejar esto: puede escribir un pequeño script usted mismo o usar algo que ya existe.
Después de buscar en Google me encontré con este agradable list. El blogger compiló unas 8 herramientas para reiniciar automáticamente una aplicación bloqueada o cerrada.
Puede utilizar RegisterApplicationRestart.
"Si se registra para el reinicio y la aplicación se encuentra con un excepción no controlada o no responde, se ofrece al usuario la oportunidad de reiniciar la aplicación, la aplicación no es se reinicia automáticamente sin el consentimiento del usuario. "
Para el reinicio automático sin intervención del usuario, también existe RestartOnCrash. Funciona con todas las versiones de Windows.
- 1. Windows - Prevenir bloqueos "Buscando una solución ..." y "Reiniciar el programa ..."
- 2. Reiniciar automáticamente un servicio cuando el apk falla
- 3. ¿Cómo hacer que gdb salga si el programa tiene éxito, se rompe si el programa falla?
- 4. Reiniciar un programa de Python
- 5. Reiniciar el caso de prueba fallido automáticamente en TestNG/Selenium
- 6. Reiniciar Hudson en Windows
- 7. reiniciar automáticamente las aplicaciones Erlang
- 8. ¿Cómo reiniciar un servicio eliminado automáticamente?
- 9. El servicio de Windows no se iniciará automáticamente después de reiniciar
- 10. Determinar si el programa se está ejecutando en Windows Server
- 11. Cómo reiniciar programaticamente el proceso de Explorador de Windows
- 12. ¿Cómo reiniciar mi aplicación si la Actualización de Windows fuerza un reinicio?
- 13. ¿Cómo verifico si el usuario actual tiene derecho a reiniciar un servicio de Windows?
- 14. ¿Puedo hacer el programa Sinatra sin reiniciar el servidor?
- 15. Reiniciar el dispositivo USB de forma automática en Windows
- 16. silenciosa de Windows Installer de instalación sin necesidad de reiniciar automáticamente
- 17. ¿Cómo reiniciar un servicio en un equipo remoto en Windows?
- 18. Cómo reiniciar la aplicación si el apagado de forma inesperada
- 19. Registre el programa de Windows con el protocolo mailto programáticamente
- 20. CreateProcess falla en Windows 7
- 21. ¿Cómo reiniciar Linux desde dentro de un programa C++?
- 22. ¿Cómo reiniciar el hilo en java?
- 23. Cómo verificar si un programa está instalado en el sistema Windows
- 24. Depuración del programa MinGW con gdb en Windows, no termina en la falla de afirmación
- 25. ¿Cómo restablezco automáticamente un canal dúplex si se produce una falla?
- 26. Reiniciar mediante programación un servicio de Windows
- 27. ¿Reiniciar IIS si se cayó nuevo dll en el contenedor?
- 28. secuencia de comandos bash para reiniciar Apache automáticamente
- 29. Reiniciar Windows desde una aplicación .NET
- 30. ¿Debe reiniciar un servicio de Windows si cambia el archivo app.config?
¿Qué tipo de programa? ¿Un servicio de Windows o una aplicación regular? –
Hmm, "a veces mi programa simplemente falla". Parece que un mejor enfoque sería descubrir por qué el programa falla y arreglarlo. Las curitas son geniales porque el cuerpo se autocuración. No es así con tus programas. –
Por supuesto que desea hacer que su programa se bloquee gratis. Ese es un gran ideal para luchar. Pero incluso los programas más robustos pueden bloquearse ocasionalmente. Si se encuentra en un entorno de servidor, puede tener mucho sentido reiniciarse cuando se produce un bloqueo. Todavía puede registrar los bloqueos y tratar de eliminarlos, pero sus usuarios serán mucho más felices sin un tiempo de inactividad prolongado por cada bloqueo. – aggieNick02