No announcement yet.

Guardian Angel

This is a sticky topic.
  • Filter
  • Time
  • Show
Clear All
new posts

  • Guardian Angel

    Guradian Angel is an executable that runs silently in a real time (highest) priority process and monitors the behavior of other processes or the computer overall. The measurement currently observered is the CPU utilization over a period of time for a particular process or for the computer overall, or for the absence of a process that is intended to be running. When the threshold is reached, or process disappears, then specified recovery actions are performed. The recovery actions are typically to terminate the offending process and restart it or to restart the computer.

    Guardian Angel is a watchdog that will monitor a process without any interaction needed with the process and without any external hardware additions. It will successfully detect a process that utilizes an excessive amount of CPU time and allow recovery from this situation. It will do the recovery in a graceful manner by first asking the offending process to close itself down. If not successful then it will terminate the process in which the application is running. If that is not successful it will then ask all applications to shut themselves down, followed by termination of each if needed and this followed by restart of Windows.

    Guardian Angel will not be successful at detecting a lockup condition in which CPU utilization is not an attribute of the lockup. Guardian Angel has the advantage over a hardware watchdog circuit in that is will not abruptly stop a process without warning as is the case with external watchdogs. It also has the advantage in that is can selectively terminate a single offending process without restarting windows and/or the computer. It downside is that depending upon the integrity of the Windows OS and it is limited in the nature of failures that it will detect.

    PR 1 1.2 Added Monitoring for a process that stopped executing
    PR 2 1.2 Corrected Computer Lockup on selective process restart
    PR 3 1.3 Added Pulse handshake monitoring
    PR 4 1.3.1 Close first process when no primary action indicated
    PR 5 1.3.1 Durations of more than 1200 seconds generate timer errors
    PR 6 1.3.2 Do pulse monitoring only if a pulse file is present
    PR 7 1.3.2 Document updates based upon feedback
    PR 8 1.3.8 Command line parameter requires quotes
    PR 9 1.3.8 Remove popup except when restart is pending
    PR 10 1.3.12 Increase wait allowed for process to shutdown

    Download available at
    Last edited by Michael McSharry; October 17th, 2007, 09:03 PM.

  • #2
    Does this run on Windows Vista?


    • #3
      Never tried. It uses Windows API calls so it is likely it will work.


      • #4
        I am running Gardian angel for a few years now, but lately I have a problem with Homeseer, that it will 'hang'. When it was playing music, the music is getting in a loop, playing over and over again the last second of music.
        In that case Homeseer is till running, so GA is not taking any action.
        Reading the GA doc, I found that you can create a pulse file and if this file is not updated every 2 seconds, GA will take action on starting HS. But HS in my case is still running, but not functioning ok.
        How can I make GA quit HS first before it starts HS again?


        • #5
          I believe that there is an option in GA to terminate HS first, then do a restart.


          • #6
            It has been a long time, but I believe GA looks for behaviorial anomolies based upon too much time consumed within a window or lack of feedback. Your failure mode looks to be one of a plugin that is not working as desired.

            It is likely you can still communicate with HS and HS can help in your monitoring. You need a monitor that can detect this situation. It could be something like the music player status is ON and the track has not changed after some number of minutes. This type of thing could be scripted within HS.

            HS provides a scripting method to turn itself off (hs.shutdown). My Terminate.exe application also does this for any running application. Jon00 has a utility that does this too. There was a discussion about Jon00's utility and Terminate that described how the timing would make one better than the other for specific situations.

            HS also provides a mechanism to control events via script so that your monitoring script could disable the event that produces the pulse that GA is monitoring. You would want to have the re-enable of this event in the startup.txt and might as well put it in shutdown.txt as well.

            Another approach is to restart the plugin and leave HS running normally. I know HS provides this capabilty through the GUI. I do not know if they expose it to scripting.


            • #7


              • #8
                I have not tried. I will give it a try. In particular what are you wanting to do with it?


                • #9
                  Hi Michael,

                  When HS3 crash , I want my pc to restart automatically.

                  Thanks for your help


                  • #10
                    I tried it and it worked for the sample vbs file that monitored when notepad.exe was not running to start it. I had to add it to my exclusion list for Bitdefender antivirus.