Apparently my CPU or GPU overheats when Blender renders more than a few minutes. The computer suddenly powers down, taking down all running apps, email I'm writing, etc. This is almost never a problem with still scenes, which finish soon enough, but often with animation renders.
The problem occurs with either Cycles or BI renders. I'm running on a custom-built quad core 64-bit linux desktop system. (I'm not the one who built it. I am a knuckle-dragging caveman with hardware issues.) (Yes, all the fans are blowing and dust has been cleaned off.)
So far the only way to prevent this for now is to choose in camera properties: Performance, Threads, Fixed, 1.
Someday, I'll get better hardware, but in the meantime, I suspect Blender could run indefinitely, even with multiple threads, if I could make it pause for perhaps one minute between each frame when animating, just to cool down. How to make this happen? At least, a way to run an arbitrary Python script between frames, or once per minute during any rendering. Such a script could contain a sleep stat
Even better, if Blender could throttle its rendering effort based on readings of the CPU temperature sensor. Is that possible?
UPDATE: I've nearly forgotten about this issue, since writing a quick Python script to watch the CPU temperature, sending SIGSTOP and SIGCONT as gandalf3 describes. Zero crashes ever since. I reboot my machine once or twice per year for kernel upgrades, otherwise it's 100% up.
ANOTHER UPDATE: I took the machine apart, popped off the CPU heatsink, and applied fresh thermal paste. Ever since, the CPU temperature has been running something like 30deg (C) cooler all the time. Zero shutdowns, and I don't use the Python script any more unless I'm feeling paranoid.