By craigevil at 2007-01-03 12:13
|
What to do if the desktop freezes?
In such a situation you dont always need the reset button. This could damage the filesystem or lead to loss of data. In any way the filesystem wont be clean after a hard reset (filesystem not clean). If nothing works, not even changing to a textconsole (alt-ctl-F1) or restarting the X-server (alt-ctl-backspace), there is still hope:
The SYSRQ-key (print-key, on the upper right side of the keyboard) will help you to cleanly reboot a frozen system.
The following sequence of key-combinations are possible:
# ALT+SYSRQ+R (should give back control of the keyboard )
# ALT+SYSRQ+S (issues a sync)
# ALT+SYSRQ+E (Sends term to all processes but init)
# ALT+SYSRQ+I (Sends kill to all processes but init)
# ALT+SYSRQ+U (filesystems are mounted readonly, prevents fsck at reboot)
# ALT+SYSRQ+B (reboots the system, without the previous steps this would be a hard reset).
Best give every step a few seconds to complete, ending all processes for example could take a little while.
The needed letters can be easily remembered with: "Raising Skinny Elephants Is Utterly Boring"
|
|
|
Controlling the use of SysRq keys
There are some ways of controlling the use of SysRq keys(i.e. what can be used, enabling or disabling them completely), two ways of doing this are:-
1) Configuring the SysRq keys during kernel compilation itself.
There isn’t much here since you can only disable SysRq keys and not actually control or define what you can and can’t use. The option you are looking for is:-
MAGIC_SYSRQ
2) Using proc sysrq trigger calls.
This is much more flexible than changing the configuration of the kernel but this has one downside with security which is explained after(since it is very minor). You use the echo command to achieve this for ease but you could also use any normal text editor to achieve this. Now the command is(you will need root permissions):-
echo * > /proc/sys/kernel/sysrqwhere “*” is a number, which can be any one of these:-
0 – disable sysrq keys completely
1 – enable all functions of sysrq
2 – enable control of console logging level
4 – enable control of keyboard (SAK, unraw)
8 – enable debugging dumps of processes etc.
16 – enable sync command
32 – enable remount read-only
64 – enable signalling of processes (term, kill, oom-kill)
128 – allow reboot/poweroff
256 – allow nicing of all RT tasks(control the nice level(priority) of Real Time tasks)
So you can define what SysRq keys can be used, and also define whether they are all on or off.
Now for the “downside”. For example you disable SysRq keys when you want to stop people(local) from doing key presses and then shutting down or messing up the PC during an important task. Now with configuring the kernel, you can stop SysRq keys from being used at all from the beginning of the boot process right uptil the end, with calling the proc sysrq triggers however, your option only takes place when it is executed(i.e. after the system has booted up) so there is a certain area of vulnerability with calling the triggers whereas there is no such thing in configuring the kernel, some people are that desperate to secure their systems to care about a few seconds, however do not blame me for it.
If it doesn't work I would assume it is either not in the kernel or is disabled by something like selinux or some other security feature.
Hard freezes occur either due to hardware trouble or a serious memory leak.
Any updates since the last post?
So I had to use the newly learned [Alt-Sysreq-B] it was the only one enabled..??
I could not even kill the terminal process (i was in) but I could list my other world as tty7 but did not know how to get back there from this fixed full screen terminal.?
'exit' only returned mme to the login process..? Where like ground hog day I just kept having to login and try to find a way out but there I could not find any way back..?
Could someone please tell me what is going on after Ctrl F1 gives a full screen tty and how do you get out of it.? Thanks