Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

The question is, what process are available to try to recover from total system instability before pulling the plug when we can do nothing but programs or batches in the path from the run dialog (windows + r key), and performance is so dead that taskMGR / procEXP / other programs with visual guis are not usable?

I am not a windows expert, but ideally someone out there has written a program that does more or less stuff like this:

Immediately set (or perhaps I can set from the run prompt) its priority to extremely high, evaluate performance bottlenecks. E.g. is CPU 100%? If so identify offending program(s) or problems. Attempt / log fixes, then provide crude feedback asking the user if his performance has stabilized enough to abort, wait a few seconds, if no feedback continue, etc. etc. Eventually try to do any "system cleanup" if the program decides it cannot recover and perhaps finally provide a series of beeps to the user, or what have you, to say "OK, I give up, time to pull the plug". Ideally create a log, when able.

These kinds of horrible hangs are a situation where surely trying something, anything, is better than nothing -- as long as that something is intelligent -- when the alternative is ripping out the power coord.

Again, I am not a windows expert, so perhaps there is a much more elegant "hands on" approach I am not aware of.

share|improve this question

migrated from Apr 7 '10 at 15:52

This question came from our site for professional and enthusiast programmers.

taskkill and shutdown are my friends:)

share|improve this answer

Many of the Sysinternals tools are either command line based or can be used from the command line instead of the GUI by using the correct switches, there are utilities there that can control or show stats for almost any part of Windows.

share|improve this answer

I agree with GAThrawn, the CLI utilities are EXCEPTIONALLY useful in such situations, however, I wish to add that one big problem is getting the attention of the system in order to get a word in edgewise. For that, you need a program that is already at high priority but doesn't consume all your CPU because it's sitting idly waiting for you to tell it the system is in trouble and it should go into action.

...something like this is, more or less, what Windows itself does with the Task Manager - you do the three fingered salute and it wakes up Task Manager. You want something similar, so you can quickly get control, so why not co-opt Task Manager to do this for you? All you would need do is have your program already running but waiting on your input to spring into action, and you use Task Manager to get the systems attention and "switch to" the target "application."

EDIT: Oops; just noticed you say Task Manager takes a long time (too long) to get its attention. Well, then, your already running program needs to wake up now and then and look for extended periods of 100% cpu utilization.

I recommend you accomplish this by having the high-priority process manage a normal priority process that does something simple that the high-priority process can witness. One way would be that the normal priority process, when launched, updates a file with the current timestamp (a unix-like "touch" would work fine). The high priority process can wake every minute, say, and launch this standard priority process. If that process fails to get its work done in, say one second, the high-priority process then springs into action to do whatever remedial work you think is suitable.

share|improve this answer

You must log in to answer this question.