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 correspoding 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 :

313 Responses to “Automatically Restart Crashed Or Hanged Applications”

  1. mauro says:

    I apologize but I will probably not well expressed; intndevo say that as the first option remains as it is and, only if the controlled application does not start, choose to restart your PC.

    Instead, I found a serious problem, for me: If you accidentally click on the X RoC closes immediately without asking for confirmation, and you lose the very useful monitoring function. I ask you, if you can, in a possible later make that to permanently close the program is prompted for a password; no password is not closed but is reduced to an icon.

    Now I have to use a third-party program “NoClose” to prevent accidental closure of RestartOnCrash controlling application running …

    Thank you

  2. Joe says:

    Where I cn find any License information for RestartOnCrash?
    My company is working on some ISO standard so we must list all software we are using and which licences programs are using.

  3. Jānis Elsts says:

    There is no formal license statement at the moment, but to summarize: it’s freeware, free for both personal and commercial use, and the unmodified software may be redistributed as long as you don’t charge for it or claim you made it. I hope that will suffice.

  4. steve swift says:

    Would you consider open sourcing this project? I’m building an internal tool to start/stop/restart processes from a web gui.

  5. Jānis Elsts says:

    No, there are currently no plans to open-source it. Also, it uses some third-party libraries that don’t have an open-source license.

  6. Juan says:

    After the application has restarted, is it possible to include sending a second command to the restarted application? I mean, after your tool restart the application, I still need a user to press F1 on the application. Can this be added or included within the same command? I have tried using several combinations like:
    “first command””F1”
    “first command+F1”
    “first command”,”F1″
    “first command ”
    “first command: F1
    “first command F1”

    Please let me know.

    Thank you! great application!

  7. Jānis Elsts says:

    No. RoC can only execute regular commands; it doesn’t have an integrated scripting language or anything like that.

    I imagine you could do something like that with AutoHotkey, but I don’t know the specifics.

  8. Le Zugg says:

    Is it possible to detect and kill/restart apps that have encountered VC++ Runtime errors?

    Error window that appears:
    Title Bar: Microsoft Visual C++ Runtime Library
    Window:
    Program:
    This application has requested the Runtime to terminate it in an unusual way.
    Please contact the application’s support team for more information.

  9. Jānis Elsts says:

    I can do that if I can get an example app that reliably crashes in that manner. Can you suggest one?

  10. Allard says:

    Is it possible to disable log also in RAM memory? Now I get a huge list of log alerts because of my program is not responding many times for some seconds. I think it fill up my memory when I use RoC some days.

    Thank you in advance!

  11. Jānis Elsts says:

    No, it’s not possible to completely disable the log.

    I think it’s probably not a major issue unless your program is freezing every minute or two. And if it is freezing that often, you probably have bigger problems than a small memory leak.

    Note: If it’s “normal” for your program to stop responding, you could turn off that monitoring option and just have RoC watch for actual crashes.

  12. Slade says:

    RoC doesn’t seem to “save” the configuration when you exit the application or reboot the computer. You have to manually put the watched/monitored application back into the RoC. Why? How do I get RoC to “save” the configuration so if the computer restarts and then RoC starts up, it already knows which application it should be monitoring?

  13. Jānis Elsts says:

    Normally, RoC saves the configuration in a settings.ini file inside its directory. Make sure that the directory is writable.

Leave a Reply