Print
Parent Category: Tutorials
Hits: 26096

Linux is a robust and stable operating system kernel, but there are instances where it can panic, be it due to bad hardware or bad software. It does not happen often, but it can happen.

If you’re running a server or some other always-on system that you may not have easy access to, a kernel panic typically means an inconvenient trip to reboot a system or a phone call to inconvenience someone else. You can, however, configure Linux to automatically reboot on a kernel panic by making a small modification to /etc/sysctl.conf, a configuration file that tweaks many kernel operating parameters.


Add the following to /etc/sysctl.conf:
kernel.panic = 30


This tells the kernel that if it encounters a panic, it is to reboot the system after a 30 second delay. By default, the kernel will never reboot when it encounters a panic, but with the above setting you can force it to.

Of course, if you enable this, make sure you are using swatch or some other means of observing log files to make sure you aware of the fact when the system panics so you can take appropriate steps to correct the problem.

 

A second method  is to put in the boot loader (grub/lilo) those lines:

For grub on the kernel line in grub.conf add panic=30 like in this example:

kernel /vmlinuz-2.6.18-53.1.19.el5.centos.plus ro root=/dev/md2 selinux=0 console=tty0 console=ttyS0,9600 panic=30

 

For lilo add in lilo.conf this line append="panic=30" like in this example:

# Linux bootable partition config begins
image = /boot/vmlinuz-2.6.18
root = /dev/md0
label = Slack-2.6.18
read-only
# Changes for serial console on COM1: in each image section

append="panic=30 mem=1024M console=tty0 console=ttyUSB0,9600n8"
# Linux bootable partition config ends

This is useful also when you install sistems via PXE boot, you avoid "remote reset button".Here is a example from default file:

label slackhugesmp.s

kernel Slackware12/kernels/hugesmp.s/bzImage

append panic=20 initrd=Slackware12/initrd.img load_ramdisk=1

prompt_ramdisk=0 rwSLACK_KERNEL=hugesmp.s console=tty0

console=ttyS0,9600

Another way is to place in /proc/sys:

echo 60 > /proc/sys/kernel/panic

On local systems, it is also convenient to be able to reboot the system with a key-press in the case of a panic. Instead of having the system reboot automatically on a local system, consider using the magic SysRq keys to reboot your system if X locks up or keyboard entry is being ignored.

To enable magic SysRq support, you must again edit /etc/sysctl.conf; some Linux distributions have this enabled by default whereas others do not.
kernel.sysrq = 1

If the time comes when the SysRq keys are required, use the magic SysRq combination, which is: [ALT]+[SysRq]+[COMMAND], where the [SysRq] key is the “print screen” key and [COMMAND] is one of the following:
b - reboot immediately without syncing or unmounting disks
e - sends a SIGTERM to all running processes, except for init
o - shut down system
s - attempt to sync all mounted filesystems
u - attempt to remount all mounted filesystems as read-only

These keys need to be pressed together simultaneously to take effect.

Auto-rebooting is great for remote systems, and the magic SysRq combo is very useful for local systems.

Note:

We use Hosting and VPS Hosting, from: www.star-host.org

We like and trust them.

Good prices, high security.