我的博客已迁移到xdoujiang.com请去那边和我交流
linux关机重启六种方法(sysrq shutdown halt init)
当前版本
cat /etc/debian_version
5.0.1

一、linux关机命令(前四种)
1、shutdown -h now(-h:halt after shutdown.)
halt
init 0
poweroff

2、linux重启命令(前四种)
shutdown -r(-r:reboot after shutdown.)
reboot
init 6

二、特殊情况重启和关机(能ping通 上述命令无法使用情况下 也就是系统挂起了)
1、查看内核是否支持
cat /boot/config-`uname -r`|grep "CONFIG_MAGIC_SYSRQ"
CONFIG_MAGIC_SYSRQ=y

2、临时开启或关闭
echo 0 > /proc/sys/kernel/sysrq
echo 1 > /proc/sys/kernel/sysrq
0 - disable sysrq completely
1 - enable all functions of sysrq

3、通过sysctl命令永久设置
sysctl -w kernel.sysrq=1
sysctl -a|grep "kernel.sysrq"
kernel.sysrq = 1

4、具体命令
重启系统
echo "b"> /proc/sysrq-trigger
'b'     - Will immediately reboot the system without syncing or unmounting
          your disks.
关闭系统 
echo "o"> /proc/sysrq-trigger
'o'     - Will shut your system off (if configured and supported). 

三、调用ipmi命令关机和重启(前提是配置过)
1、重启机器
ipmitool -Ilanplus -H 172.16.1. -U root -P 123456 power reset
2、关闭电源
ipmitool -I lanplus -H 172.16.1. -U root -P 123456 power off

一些sysrq的命令参数说明
'b'      - Will immediately reboot the system without syncing or unmounting your disks.
'c'      - Will perform a system crash by a NULL pointer dereference.A crashdump will be taken if configured.
'd'      - Shows all locks that are held.
'e'      - Send a SIGTERM to all processes, except for init.
'f'      - Will call oom_kill to kill a memory hog process.
'g'      - Used by kgdb (kernel debugger)
'h'      - Will display help (actually any other key than those listed here will display help. but 'h' is easy to remember :-)
'i'      - Send a SIGKILL to all processes, except for init.
'j'      - Forcibly "Just thaw it" - filesystems frozen by the FIFREEZE ioctl.
'k'      - Secure Access Key (SAK) Kills all programs on the current virtual console. NOTE: See important comments below in SAK section.
'l'      - Shows a stack backtrace for all active CPUs.
'm'      - Will dump current memory info to your console.
'n'      - Used to make RT tasks nice-able
'o'      - Will shut your system off (if configured and supported).
'p'      - Will dump the current registers and flags to your console.
'q'      - Will dump per CPU lists of all armed hrtimers (but NOT regular timer_list timers) and detailed information about all clockevent devices.
'r'      - Turns off keyboard raw mode and sets it to XLATE.
's'      - Will attempt to sync all mounted filesystems.
't'      - Will dump a list of current tasks and their information to your console.
'u'      - Will attempt to remount all mounted filesystems read-only.
'v'      - Forcefully restores framebuffer console
'v'      - Causes ETM buffer dump [ARM-specific]
'w'      - Dumps tasks that are in uninterruptable (blocked) state.
'x'      - Used by xmon interface on ppc/powerpc platforms. Show global PMU Registers on sparc64.
'y'      - Show global CPU Registers [SPARC-64 specific]
'z'      - Dump the ftrace buffer