分类: LINUX
2012-06-20 10:47:46
1. /proc/sys/kernel/sysrq
向sysrq文件中写入1是为了开启SysRq功能。根据linux/Documentations/sysrq.txt中所说:
SysRq代表的是Magic System Request Key。开启了这个功能以后,只要内核没有挂掉,它就会响应你要求的任何操作。但是这需要内核支持(CONFIG_MAGIC_SYSRQ选项)。向/proc/sys/kernel/sysrq中写入0是关闭sysrq功能,写入1是开启,其他选项请参考sysrq.txt。需要注意的是,/proc/sys/kernel/sysrq中的值只影响键盘的操作。
那么怎么使用SysRq键呢?在x86平台上,组合键”
'b' —— 将会立即重启系统,并且不会管你有没有数据没有写回磁盘,也不卸载磁盘,而是完完全全的立即关机
'o' —— 将会关机
's' —— 将会同步所有以挂在的文件系统
'u' —— 将会重新将所有的文件系统挂在为只读属性
2. /proc/sysrq-trigger
从文件名字就可以看出来这两个是有关系的。写入/proc/sysrq-trigger中的字符其实就是sysrq.txt中说的
/proc/sysrq-trigger该文件能做些什么事情呢?
# 立即重新启动计算机 (Reboots the kernel without first unmounting file systems or syncing disks attached to the system)echo "b" > /proc/sysrq-trigger
# 立即关闭计算机(shuts off the system)echo "o" > /proc/sysrq-trigger
# 导出内存分配的信息 (可以用/var/log/message 查看)(Outputs memory statistics to the console) echo "m" > /proc/sysrq-trigger
# 导出当前CPU寄存器信息和标志位的信息(Outputs all flags and registers to the console)echo "p" > /proc/sysrq-trigger
# 导出线程状态信息 (Outputs a list of processes to the console)echo "t" > /proc/sysrq-trigger
# 故意让系统崩溃 ( Crashes the system without first unmounting file systems or syncing disks attached to the system)echo "c" > /proc/sysrq-trigger
# 立即重新挂载所有的文件系统 (Attempts to sync disks attached to the system)echo "s" > /proc/sysrq-trigger
# 立即重新挂载所有的文件系统为只读 (Attempts to unmount and remount all file systems as read only)echo "u" > /proc/sysrq-trigger
呵呵,此外还有两个,类似于强制注销的功能
e — Kills all processes except init using SIGTERM
i — Kills all processes except init using SIGKILL