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.
Related posts :

471 Responses to “Automatically Restart Crashed Or Hanged Applications”

  1. Jānis Elsts says:

    @ Roland: That sounds really strange. Could it be that when RoC says the app is “running” but it actually isn’t, the application process still exists and it just has no visible windows? Could you check that by looking for the process in the Task Manager?

  2. Roland says:

    @ Jänis: Yes, you are right! The process still exists in Task Manager but has no visible window. Strange.

  3. Jānis Elsts says:

    Try turning on the “kill the process” option in RoC settings. Maybe that will help get rid of the lingering process.

  4. beth says:

    hi i am running this win2012 R2 on a vps, basically its to ensure all my forex trading terminals are running fine and should restart upon 1) OS reboots 2) when it hung or accidentally closed off or closed off upon automatic update of the trading terminal
    For automatic update of terminal, the terminal will restart on its own but sometimes its kinda of not doing so for some strange reasons

    I have set 30secs for Grace Period and for each terminal i have set 5secs for wait
    The ROC panel looks like this below
    =====================================
    Application Status
    ======================================
    C:\acct1\terminal.exe running
    c:\acct2\terminal.exe running

    * for each trading terminal i have created its own folder n install the terminal into that folder so that i can open multiple trading terminals for each trading acct

    My requirements are:
    1) all these application has to restart upon OS reboots
    ROC is set to startup when windows start
    2) if any one of the terminal.exe is hung/close off accidentally it has to restart

    I am concern setting too low numbers that clock up the cpu needed to monitor n may cause ROC to keep terminating and restarting the terminals

    If i place wait-5secs, does this mean that upon crash/close off ROC will wait 5 secs to start the terminal.exe?

    Grace period=30secs meant it will wait 30secs before attempting to restart the terminal.exe that it has restarted previously again?

    Does ROC works well even though it has same name application on different folder path?

  5. Jānis Elsts says:

    The “wait 5 seconds” setting means that when RoC detects that the application isn’t running, it will wait 5 seconds and check again before doing anything. This setting is useful for applications that sometimes freeze temporarily but then start working again, or that restart themselves.

    The “grace period” is the minimum time that RoC will wait between attempts to restart an application. It’s useful for applications that take a long time to start up. For example, if your application takes 10 seconds to launch, you need a grace period of at least 10 seconds or RoC might end up repeatedly killing and restarting the application.

    Does ROC works well even though it has same name application on different folder path?

    I think this might depend on the operating system. You might need to test this yourself.

  6. beth says:

    Hi Janis

    Happy to report that its working very fine, i set back grace=60secs, usually the trading terminals takes just 2-3 secs to startup complete and have not hung except for very much older version. The current version since 2017 that has gone thru many updates is very stable n wont crash even upon push update. Unfortunately for me, mql (creator of forex terminal) does not allow selection of whether to update the terminals its a push update that terminal.exe will perform regardless. Luckily they do understand and support traders and push updates happen during the NY closing time around 23.00hrs (GMT+3) thus not much issue to handle

    Grace=60secs didnt get triggered n i have normal non duplicated terminal.exe. Thank you for creator that give us this useful freebie utility, runs 0% cpu and only 11-14%ram which is a 2.15ghz vps

  7. Fabaino says:

    Hello

    I’m not able to start the program Restart on Crash with Windows startup, even with the parameter marked

  8. Jānis Elsts says:

    Unfortunately, I don’t have any suggestions at this time.

  9. Keith G says:

    I want to keep an app – AeroAdmin – running on remote PC which allows me to remotely access and control the PC (similar to TeamViewer). AeroAdmin does not get installed in the Programs folder, it’s simply an exe file on the desktop. I also have another program called FullSync which is a properly-installed program, which I also need to keep alive at all times. These two programs have been added to RoC. RoC properly detects when FullSync has stopped running, and restarts it. However, RoC does NOT properly detect when AeroAdmin has stopped running… unless I stop and restart RoC! That is, RoC will check the status of AeroAdmin when it (RoC) starts up and will start it (AA) if necessary. But while RoC is running, it will NOT detect that AA has stopped. I have fiddled with this in different ways and no change. I’ve checked TaskManager, and there are no stray AA processes running when it quits. It’s truly not running. What can I try here? Thanks!

  10. Jānis Elsts says:

    That’s a very strange issue. It sounds like it could be a bug in RoC itself, but I have no idea where/how it might be happening. RoC doesn’t do anything special when you restart it; it always checks running applications in the same way.

    Have you tried enabling both “it isn’t running” and “it’s not responding” options in app settings? Technically you only need one of them to detect that a monitored process has stopped running, but in this case enabling both might help work around this unidentified bug.

  11. Keith G says:

    Yes, I have both boxes checked at present. I didn’t try with only one of them checked, I suppose it’s worth a try. I’ll fiddle with it a little more tomorrow; I have to go in for something else, I’m not just doing it for this; obviously I’m trying to comply with the rules and stay home). We will try to sleuth it out. I may not “Need” this program, you know, it’s just a reinforcement/fallback. Thanks for your help.

Leave a Reply