This is an old revision of the document!
Sometimes it is useful to panic a linux machine, specially when testing various HA setups or kdump thingies.
I found that “echo c > /proc/sysrq-trigger” is not enough. It produces a kernel dump but the machine keeps running. So I went with the more “hardcore” option: a kernel module that calls panic(). The idea is described in Linux Crash Howto, but here it is upgraded for the 2.6 kernel.
panic.c:
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
static int __init enter_module(void)
{
  panic("forcing kernel panic.\n");
  return 0;
}
static void __exit exit_module(void)
{
/* dead code here */
  printk("Bye!\n");
}
module_init(enter_module);
module_exit(exit_module);
MODULE_AUTHOR("John Doe");
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Panic mode on!");
Makefile:
obj-m += panic.o
all:
      make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
      make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
Have kernel sources handy, put these two files in a directory of your liking and simply say “make”. You're presented with a panic.ko, which you simply insmod to kill the machine.





