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. BWhite says:

    Thank you! That was absolutely it! I’m running this program on machines with no internet access! Perfect!

  2. Toufkir says:

    Hello!
    I set IPVanish.exe (VPN app) and when I close it, RoC detects it not running but it can not restart IPV. It sets IPV as “crashed”. If I relaunch IPV manually (start menu link), it works.
    So why RoC can not do so?
    Regards.

  3. Jānis Elsts says:

    Could it be that the VPN app needs to be run as an administrator? In that case, you may have to start RoC as an administrator as well so that it can start the VPN app.

  4. Bill says:

    Thank You for this nice little program! Is there a way to prevent RoC from starting a program that isn’t running right after a reboot? Like having it wait for X (15 minutes?) after PC startup before it tries to start things? -Bill

  5. Jānis Elsts says:

    No quite, no. You could use the “Wait X seconds and double-check” setting for this, but then RoC would wait that long every time, not just after a reboot.

  6. beth says:

    whether any error can set to email

  7. Nee Fen says:

    The option to Run ROC when windows start, does it wait till a user is logon?

    If running on a Windows server, if user is not logon, will the applications be run in the background?
    Otherwise if a server have multiple users, which user desktop will the application be run on?

    Thank you very much for an excellent product.

  8. Jānis Elsts says:

    That’s a good question. Yes, I think it will only run when a user logs on. Specifically, it will run for any user that has opened RoC and changed/saved autorun settings.

    Technically, RoC implements the “run when Windows starts” feature by adding itself to this registry key:
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

  9. Sergey says:

    Simple & perfect!!!
    Respect!!!

  10. Nee Fen says:

    I can confirm that it works on window server 2019 like you said.
    I checked the “Run ROC when Windows start”.
    Once windows is started and I logon, then ROC starts for that user.
    i.e. ROC starts after user logon.
    Windows Task manager shows that ROC is running in the background but the applications that it started is running on the desktop (foreground).

    Fantastic !

    Question: Does it depends on .Net framework? I intend to un-install all the .Net since my applications doesn’t needs it to save some space.

  11. Jānis Elsts says:

    No, it shouldn’t have any dependencies on the .NET framework.

  12. Paul Smith says:

    This is great for single login, but can you get this work in a ternimal services environment with multiple users of same .exe

    It cant seem to operate with different process ID (both scenarios: one RoC instance and one instance per user)

    (I have 30 users, using same .exe but running a different file)

  13. Jānis Elsts says:

    Unfortunately, I don’t know enough about that environment to solve that problem at this time.

  14. Peter says:

    Is there a way that i can back-up my selections in RoC? Occassionally, when I have a powerfailure RoC loses all settings that I’ve programmed – so, in effect RoC doesn’t recover from the crash. If there was a simple backup file that i could re-install the settings, this would save a lot of time. roC does a great job monitoring all of my critical MT4 programmes, but it’s annoying when this happens.

  15. Jānis Elsts says:

    The settings are stored in an .ini file that is usually in the same directory as the RoC executable. You could back up that file.

  16. D N says:

    Im having issues where the program wont restart after I manually close the program. I have it running as admin, what should I do

  17. Jānis Elsts says:

    Can you elaborate on what happens when the program doesn’t restart? For example, is there an error of some kind?

    At a guess, maybe you need to run RoC as an admin as well so that it can (re-)start the program.

  18. Ken says:

    Just what I was looking for. How frequently does it check the selected process for a crashed state? Is there a way to change this?

    Thanks,
    Ken

  19. Jānis Elsts says:

    It checks for crashes approximately every 1.4 seconds (yes, really). There is currently no way to change that.

  20. Dark says:

    Works as it should on Windows 7 x64. Tried on Windows 10 – always shows app as Running no matter what. Tried everything. Do you have a different behavior?

    Regards.

Leave a Reply