When an application (thunderbird) has a problem, sometimes it goes into an unresponsive state where it has blocked the UI, is blocking login processes (at tty terminals) and also is preventing a restart of the X session using Ctrl-Alt-Backspace.
Normally on a *nix box, sending a signal to the process is enough to give me back enough access to regain control, however in this case everything was borked, even though it was only a single application using a great deal of RAM and swap.
Using Ctrl-Alt-F1 gave me a console and a login prompt, and I could enter the root username, but it wouldn't return the password prompt, so I was stuck.
Ctrl-Alt-Backspace caused a restart of the X session, but it didn't give me a login prompt and a power-cycle was necessary.
Is there some way to bind a keystroke to some sort of low level "interrupt function" (I mean that in the general sense) to suspend the bothersome hung process so I can see what it is trying to do using strace
?
I am vaguely aware that some blocked processes can't be suspended until they have returned, but in this case there is no indication that the blocking process is being prevented from accessing any IO resources, it just appears to be doing something dumb.
I was originally thinking of some bash script to ionice and renice any process associated with thunderbird to the lowest priority, but I imagine that if things are as bad as they seem, then the new process would not be able to get on the CPU.
I would like to use the Ctrl-Break key for this, as it isn't used for anything else during desktop sessions on my machine.
Basically, the desktop is (slowly) responding to key and mouse, so there is some scope to get commands run to cause the bad process to suspend, I just don't know what sort of commands are available in this scenario.