Patent ID: 8413144

Claim:
A method comprising: generating information indicating a state of each of a plurality of applications executing in a virtual machine, wherein the generating is performed by an application monitoring agent executing outside of the virtual machine, the application monitoring agent obtains the state of each of the plurality of applications by interacting with an operating system interface provided by an operating system of the virtual machine, and the application monitoring agent is configured to monitor at least one application on each of a plurality of virtual machines; receiving the information indicating the state of each of the plurality of applications executing in the virtual machine, wherein the information is received by a computing device implementing a virtual machine monitoring agent that is monitoring the virtual machine, wherein the application monitoring agent and the virtual machine monitoring agent are implemented by a virtual machine monitor; in response to the receiving, determining whether the virtual machine should be restarted, based at least in part on the state of each of the plurality of applications executing in the virtual machine and a priority of each of the plurality of applications; generating information indicating whether the virtual machine should be restarted in response to the determining; and restarting the virtual machine if the information indicates that the virtual machine should be restarted.