<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/ DTD/wml_1.1.xml">

<wml>
<head>
<meta http-equiv="cache-control" content="max-age=180,private" />
</head>
<card title="Linux的重启命令">
<p>
作者:<a href="index.php?action=showuser&amp;userid=1&amp;hash=">admin</a><br />时间:2024-05-03 15:49<br />分类:<a href="index.php?action=list&amp;cid=3&amp;hash=">电脑技术</a><br />内容:
Linux的重启命令




关机命令


我们可以使用以下三种命令来关机 Linux ：


1、立刻关机（需要root用户）


shutdown -h now


10 分钟后自动关机


shutdown -h 10


2、立刻关机


halt


3、立刻关机


poweroff


重启命令


重启可以使用以下两种命令:


1、最简单的是使用 reboot 命令（需要root用户）


reboot


2、也可以使用 shutdown 命令


shutdown -r now




# 强制重启




XML/HTML代码


    echo 1 &gt; /proc/sys/kernel/sysrq

    echo b &gt; /proc/sysrq-trigger







/proc/sys/kernel/sysrq /proc/sysrq-trigger----强制重启/触发器


LINUX远程强制重启/proc/sys/kernel/sysrq /proc/sysrq-trigger----触发器


http://blog.csdn.net/beckdon/article/details/41313713


http://blog.csdn.net/chinaclock/article/details/50499530


http://www.cnblogs.com/justin-y-lin/p/5424555.html


https://www.cnblogs.com/yanghong-hnu/p/5880417.html  （


数据结构(/include/linux/leds.h)）


echo 1 &gt; /proc/sys/kernel/sysrq  


echo b &gt; /proc/sysrq-trigger  


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平台上，组合键&quot;&lt;ALT&gt; + SysRq + &lt;command key&gt;&quot;组成SysRq键以完成各种功能。但是，在一些键盘上可能没有SysRq键。SysRq键实际上就是&quot;Print Screen&quot;键。并且可能有些键盘不支持同时按三个按键，所以你可以按住&quot;ALT键&quot;，按一下&quot;SysRq键&quot;，再按一下&quot;&lt;command key&gt;键&quot;，如果你运气好的话，这个会有效果的。不过放心，现在的键盘一般都支持同时按3个或3个以上的键。


&lt;command key&gt;有很多，这里只挑几个来说，其他的可以参考sysrq.txt文件。


&middot; 'b' &mdash;&mdash; 将会立即重启系统，并且不会管你有没有数据没有写回磁盘，也不卸载磁盘，而是完完全全的立即关机


&middot; 'o' &mdash;&mdash; 将会关机


&middot; 's' &mdash;&mdash; 将会同步所有以挂在的文件系统


&middot; 'u' &mdash;&mdash; 将会重新将所有的文件系统挂在为只读属性


2. /proc/sysrq-trigger


从文件名字就可以看出来这两个是有关系的。写入/proc/sysrq-trigger中的字符其实就是sysrq.txt中说的键所对应的字符，其功能也和上述一样。


所以，这两行命令先开启SysRq功能，然后用'b'命令让计算机立刻重启。


/proc/sysrq-trigger该文件能做些什么事情呢？ 


# 立即重新启动计算机 （Reboots the kernel without first unmounting file systems or syncing disks attached to the system）


echo &quot;b&quot; &gt; /proc/sysrq-trigger


# 立即关闭计算机（shuts off the system）


echo &quot;o&quot; &gt; /proc/sysrq-trigger


# 导出内存分配的信息 （可以用/var/log/message 查看）（Outputs memory statistics to the console） 


echo &quot;m&quot; &gt; /proc/sysrq-trigger


# 导出当前CPU寄存器信息和标志位的信息（Outputs all flags and registers to the console）


echo &quot;p&quot; &gt; /proc/sysrq-trigger


# 导出线程状态信息 （Outputs a list of processes to the console）


echo &quot;t&quot; &gt; /proc/sysrq-trigger


# 故意让系统崩溃 （ Crashes the system without first unmounting file systems or syncing disks attached to the system）


echo &quot;c&quot; &gt; /proc/sysrq-trigger


# 立即重新挂载所有的文件系统 （Attempts to sync disks attached to the system）


echo &quot;s&quot; &gt; /proc/sysrq-trigger


# 立即重新挂载所有的文件系统为只读 （Attempts to unmount and remount all file systems as read-only）


echo &quot;u&quot; &gt; /proc/sysrq-trigger


此外还有两个，类似于强制注销的功能


e &mdash; Kills all processes except init using SIGTERM


i &mdash; Kills all processes except init using SIGKILL


这是一组&ldquo;魔术组合键&rdquo;，只要内核没有被完全锁住，不管内核在做什么事情，使用这些组合键能即时打印出内核的信息。


使用sysrq组合键是了解系统目前运行情况的最佳方式。如果系统出现挂起的情况或在诊断一些和内核相关，比较怪异，比较难重现的问题的时候，使用sysrq键是个比较好的方式。


怎么打开和关闭SysRq组合键?


为了安全起见，在红帽企业版Linux里面，默认SysRq组合键是关闭的。 打开这个功能，运行：


echo 1 &gt; /proc/sys/kernel/sysrq


关闭这个功能：


echo 0 &gt; /proc/sys/kernel/sysrq


如果想让此功能一直生效，在/etc/sysctl.conf里面设置kernel.sysrq的值为1. 重新启动以后，此功能将会自动


打开。


kernel.sysrq = 1


因为打开sysrq键的功能以后，有终端访问权限的用户将会拥有一些特别的功能。因此，除非是要调试，解决问题，一般情况下，不要打开此功能。如果一定要打开，请确保你的终端访问的安全性。


怎么触发一个sysrq事件?


有几种方式能触发sysrq事件。在带有AT键盘的一般系统上，在终端上输入一下组合键:


Alt+PrintScreen+[CommandKey]


例如，要让内核导出内存信息(CommandKey &quot;m&quot;)，你应该同时按下Alt 和 Print Screen 键，然后按下 m 键.


提示: 此组合键在Xwindows上是无法使用的。所以，你先要转换到文本虚拟终端下。如果你当前是在图像界面，


能按Ctrl+Alt+F1转换到虚拟终端。


在串口终端上,要想获得同样的效果，需要先在终端上发送Break信号，然后在5秒内输入sysrq组合键。


如果你在机器上有root权限，你能把commandkey字符写入到/proc/sysrq-trigger文件。这能帮助你通过脚本或你不在系统终端上的时候触发sysrq事件。


echo 'm' &gt; /proc/sysrq-trigger


当我触发一个sysrq事件的时候，结果保存在什么地方?


当一个sysrq命令被触发，内核将会打印信息到内核的环形缓冲并输出到系统控制台。此信息一般也会通过syslog输出到/var/log/messages.


有时候，可能系统已无法响应，syslogd可能无法记录此信息。在这种情况下，建议你设置一个串口终端来收集这个信息。


那些类型的sysrq事件能被触发?


sysrq功能被打开后，有几种sysrq事件能被触发。不同的内核版本可能会有些不同。但有一些是共用的:


* m - 导出关于内存分配的信息，


* t - 导出线程状态信息，


* p - 导出当前CPU寄存器信息和标志位的信息，


* c - 故意让系统崩溃(在使用netdump或diskdump的时候有用)，


* s - 即时同步所有挂载的文件系统，


* u - 即时重新挂载所有的文件系统为只读，


* b - 即时重新启动系统，


* o - 即时关机(如果机器设置并支持此项功能)。


 Linux下/proc目录的作用


1.&ensp;/proc目录


Linux&ensp;内核提供了一种通过&ensp;/proc&ensp;文件系统，在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统，它只存在内存当中，而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。


用户和应用程序可以通过proc得到系统的信息，并可以改变内核的某些参数。由于系统的信息，如进程，是动态改变的，所以用户或应用程序读取proc文件时，proc文件系统是动态从系统内核读出所需信息并提交的。下面列出的这些文件或子文件夹，并不是都是在你的系统中存在，这取决于你的内核配置和装载的模块。另外，在/proc下还有三个很重要的目录：net，scsi和sys。&ensp;Sys目录是可写的，可以通过它来访问或修改内核的参数，而net和scsi则依赖于内核配置。例如，如果系统不支持scsi，则scsi目录不存在。


除了以上介绍的这些，还有的是一些以数字命名的目录，他们是进程目录。系统中当前运行的每一个进程都有对应的一个目录在/proc下，以进程的PID号为目录名，他们是读取进程信息的接口。而self目录则是读取进程本身的信息接口，是一个link。


2.子文件或子文件夹


/proc/buddyinfo 每个内存区中的每个order有多块可用，和内存碎片问题有关


/proc/cmdline　　启动时传递给kernel的参数信息


/proc/cpuinfo　　cpu的信息


/proc/crypto　　内核使用的所有已安装的加密密码及细节


/proc/devices　　已经加载的设备并分类


/proc/dma　　已注册使用的ISA DMA 频道列表


/proc/execdomains Linux 内核当前支持的execution domains


/proc/fb　　帧缓冲设备列表，包括数量和控制它的驱动


/proc/filesystems　　内核当前支持的文件系统类型


/proc/interrupts x86 架构中的每个IRQ中断数


/proc/iomem　　每个物理设备当前在系统内存中的映射


/proc/ioports　　一个设备的输入输出所使用的注册端口范围


/proc/kcore代表系统的物理内存，存储为核心文件格式，里边显示的是字节数，等于RAM大小加上4kb


/proc/mdstat 多硬盘，RAID配置信息（md=multiple disks）


/proc/loadavg 根据过去一段时间内CPU和IO的抓鬼呢太得出的负载状态，与uptime命令有关


/proc/meminfo 　　RAM使用的相关信息


/proc/misc 其他的主要设备（设备号为10）上注册的驱动


/proc/modules　　所有加载到内核的模块列表


/proc/mounts　　系统中使用的所有挂载


/proc/partitions　　分区中的块分配信息


/proc/stat　　所有的cpu活动信息


/proc/uptime　　系统已经运行了多久


/proc/swaps　　交换空间的使用情况


/proc/fs　　文件系统信息


/proc/ide　　ide设备信息


/proc/net　　网卡设备信息


/proc/vmsat　　虚拟内存统计信息


/proc/vmcore　　内核panic时的内存映像


/proc/diskstats　　取得磁盘信息


/proc/scsi　　scsi设备信息


以下是/proc目录中进程信息


/proc/N 　　pid为N的进程信息


/proc/N/cmdline　　进程启动命令


/proc/N/cwd　　链接到进程当前工作目录


/proc/N/exe　　链接到进程的执行命令文件


/proc/N/fd　　包含进程相关的所有的文件描述符


/proc/N/maps　　与进程相关的内存映射信息


/proc/N/mem　　指代进程持有的内存，不可读


/proc/N/stat　　进程的状态


/proc/N/status　　进程状态信息，比stat/statm更具可读性


/proc/self　　链接到当前正在运行的进程 
</p><p>
<a href="index.php?action=login&amp;hash=">立即登陆发表评论</a><br />
</p>
<p><a href="index.php?action=list&amp;hash=">返回日志列表</a><br /><a href="index.php?action=index&amp;hash=">返回主页</a></p>
</card>
</wml>
