Automatically Restart Crashed Or Hanged Applications

Don’t you hate it when programs hang or crash? I find it especially annoying when a background application like an IM client or a bandwidth monitor silently crashes – sometimes I only notice the problem hours later when I’ve already missed a bunch of messages. I’m sure you’ve encountered a few “Not responding” errors and some irritatingly crash-prone applications yourself.

If you have an unstable program that you absolutely need to run at all times, but don’t want to waste your time monitoring and manually restarting it every time it croaks, I might have something interesting for you.

Restart on Crash is an monitoring tool that will watch the applications that you specify and automatically relaunch any program that hangs or crashes. You can add any number of applications to monitor, enable/disable them individually and edit the command line that will be used to restart an application.

Restart on Crash doesn’t require installation and stores all it’s configuration data in a “settings.ini” file in the program’s folder, so it’s portable. It should be compatible with most NT-based Windows versions.

Download Restart on Crash (1.4 MB)

Screenshots & Documentation

Main application window

The main window

  • To add a new application to monitor, click the “Add” button or press the Ins key.
  • To delete on or more applications from the list, select them and click “Delete” or press Del.
  • To edit the per-application configuration, double-click the corresponding row. This will open the editing dialog (see below).
  • You can also access the RoC configuration by clicking “Settings” and view the activity log by clicking “Show Log”. The log contains information about crashed/hanged applications, executed commands, and so on.
Editing the monitor settings for an application

Editing the monitor settings for an application

Well, this one should be pretty self-explanatory 🙂 One detail to keep in mind is that enabling the “It isn’t running” option will make Restart On Crash treat the application as if it has crashed even if you have purposefully it closed it. You can get around this by disabling the monitoring of the application before you close it.

The configuration dialog. Yes, that's it.

The configuration dialog. Yes, that’s it.

“Grace period” is how long Restart on Crash will wait before trying to terminate/restart an application that it has just terminated/restarted. This is intended to prevent a scenario where RoC kills a hanged program, restarts it, decides it has hanged again (e.g. if the program is non-responsive while starting up) and wrongfully terminates it again.

Known Issues

  • If you configure RoC to automatically kill a hanged application, it will terminate all instances of that application when doing so. This may be fixed eventually.

Release Notes

2022-11-02

  • The “execute a command” feature can now launch shortcuts (.lnk files). Potentially, it can now run almost any type of file as long as file associations are set up correctly.

2019-12-17

  • Improved “application is not responding” detection.
  • Added a “Clear Log” button to the Log window.

2019-08-24

  • Added a “Restart Now” option to the application pop-up menu. It restarts the selected application immediately without waiting for the grace period to expire.
Related posts :

605 Responses to “Automatically Restart Crashed Or Hanged Applications”

  1. baiguang says:

    Open more programs, lose a process, can’t be triggered

  2. […] descargar Restart On Crash en su PC, conéctese a su sitio oficial y haga clic en el enlace Descargar Restart on Crash. Cuando se complete la descarga, extraiga el […]

  3. Nick says:

    I found a bug I think. How do I upload an image?
    Basically the GUI shows the application status as “not running”
    but log says ” ……. has recovered”.

    The application did not restart. I tried unticking the checkbox (disabled) and enabled but did not work.

    I have to right click and “restart now” and the program get restarted.

    it on server2012 R2 and running as admin

  4. Jānis Elsts says:

    Thank you for the report! Unfortunately, to really fix this bug I would probably need a way to reproduce the problem on my own system so that I can see what’s going on with RoC when it’s in that incorrect state.

    There’s no image upload function on this site, but you could send me a screenshot via email. My email address is on the contact page.

  5. Igor says:

    In my case, I need to monitor 6 instances of Kitty.exe application, which are started using different sessions. Is it possible to do that with your app? (I tried to configure 6 applications in your app, but it seems that Kitty’s different arguments are not taken into account by your app).

  6. Jānis Elsts says:

    I don’t think that’s currently possible. RoC only uses the path to the .exe file to identify an application, so it would not distinguish between different instances started with different arguments.

  7. WTL says:

    Thank you very much! A useful application.

  8. Rick says:

    Thanks for a great program! So far no problems and it seems to do just what you say it does.

  9. Vitaliy says:

    Don’t start with Windows, but checkbox on.

  10. Jānis Elsts says:

    Try running RoC as an administrator and see if that makes a difference.

  11. Douglas L Holeman says:

    Good evening!

    Love this project and it has tremendously helped me to keep some community servers running for an indie project I’m a player of.

    The only issue I’ve found is sometimes the game executable, will hard crash:
    https://cdn.discordapp.com/attachments/519656225797963777/897270807695347732/unknown.png
    And then RoC won’t be able to restart it. Please feel free to reach out and I can give more context. Would love to be able to see RoC be able to take care of this!

    -Douglas

  12. Jānis Elsts says:

    My first guess would be that the “Oops!” window makes RoC think that the game is still running. Alternatively, maybe the executable itself checks if another instance is already running and it won’t restart until someone clicks the “OK” button.

    Does RoC restart the it if you manually click “OK”? If so, maybe you could make an AutoHotkey script or something like that which automatically closes the error message whenever it shows up.

  13. […] hosts a WCF service and also transcodes video using DirectShow. I use a great little app called Restart on Crash which reliably detects when a process has exited and automatically restarts it. The trouble is […]

  14. […] Скачать и запустить Restart при сбое. Хорошая идея — уже иметь приложение, которое вы хотите перезапустить, потому что это упрощает добавление его в список приложений. Перезагрузка при сбое требует перезапуска в случае сбоя. […]

  15. jack says:

    Thank you very much.

  16. Devin says:

    Is the source available for this on GitHub or would you ever be interested in posting it there? I love the app, has been helpful for years. Would love to contribute to the project 🙂

  17. Jānis Elsts says:

    No, the source is currently not publicly available. I’m not going to say that it will never be released, but right now I don’t have any such plans.

  18. […] descargar Restart On Crash a su computadora, inicie sesión en ella sitio web oficial y haga clic en el enlace Descargar Reiniciar al fallar. Cuando se complete la descarga, extraiga el […]

  19. […] Herunterladen und führen Sie Neustart bei Absturz aus. Es ist eine gute Idee, die App, die Sie neu starten möchten, bereits auszuführen, da es einfacher ist, sie zur Liste der Apps hinzuzufügen, die bei einem Absturz neu gestartet werden müssen. […]

  20. Ivan Vernot says:

    Hello, thank you for a great program.
    I wonder if you would add more details on how the crash detection works and how you terminate the app once a crash has been detected.

    I am using RoC to monitor (my) app which (I believe) is running fine (no crashes no lockups) but frequently (several time per day) RoC detects it as not responding and occasionally (several times per week) it terminates (and restarts it)

    I had added logging to my app and cannot see any obviously ‘high CPU usage’ times, nor do I see the app hanging for any period of time. Can you please advise how RoC determines that the app is ‘non responsive’

    I also have added monitoring/logging when the app is shutdown. When I kill it with Task Manager the app detects the event (and logs it). When I kill it with RoC there is no log entry -(ie app does not ‘detect’ being killed).
    Can you please advise how RoC kills the app.

    Thanks again for such a great utility

Leave a Reply