📄 117.html
字号:
<div align="center">
<input maxlength=100 size=30 name=keyword2>
</div>
</td>
</tr></tbody>
</table>
</form>
</TD>
<TD rowSpan=2><IMG src="images/header_r1_c7.gif" tppabs="http://www.linuxhero.com/docs/images/header_r1_c7.gif" width=26 border=0 name=header_r1_c7></TD>
<TD><IMG height=83 src="images/spacer.gif" tppabs="http://www.linuxhero.com/docs/images/spacer.gif" width=1 border=0></TD></TR>
<TR>
<TD background="images/bgline.gif" tppabs="http://www.linuxhero.com/docs/images/bgline.gif"><IMG height=22
src="images/header_r2_c1.gif" tppabs="http://www.linuxhero.com/docs/images/header_r2_c1.gif" width=296 border=0
name=header_r2_c1></TD>
<TD background="images/bgline.gif" tppabs="http://www.linuxhero.com/docs/images/bgline.gif" colSpan=5>
<DIV align=right><FONT class=normalfont>当前位置:
<A href="index.html" tppabs="http://www.linuxhero.com/docs/index.html">本站首页</A>
<font color="#FF6699">>></font>
<A href="type2.html" tppabs="http://www.linuxhero.com/docs/type2.html">基础知识</A> | <A href="copyright.html" tppabs="http://www.linuxhero.com/docs/copyright.html">版权说明</A></font></DIV>
</TD>
<TD><IMG height=22 src="images/spacer.gif" tppabs="http://www.linuxhero.com/docs/images/spacer.gif" width=1
border=0></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=10 cellPadding=0 width="100%" bgColor=#ffffff
border=0>
<TR>
<TD>
<TABLE cellSpacing=0 cellPadding=3 width="100%" border=0>
<TR>
<TD vAlign=top align=middle width="60%">
<TABLE cellSpacing=0 cellPadding=0 width="100%"
background="images/back.gif" tppabs="http://www.linuxhero.com/docs/images/back.gif" border=0>
<TBODY>
<TR>
<TD vAlign=top width="80%">
<DIV align=center>
<FORM action="search.html" tppabs="http://www.linuxhero.com/docs/search.html" method=get>
</FORM>
<TABLE cellSpacing=0 cellPadding=0 width="95%"
border=0><TBODY>
<TR>
<TD background="images/bgi.gif" tppabs="http://www.linuxhero.com/docs/images/bgi.gif"
height=30></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=3 width="95%"
align=center border=0>
<TBODY>
<TR>
<TD>
<TABLE cellSpacing=0 cellPadding=3 width="100%"
border=0>
<TBODY>
<TR>
<TD vAlign=top>
<p><FONT class=normalfont><B><font color=blue>halt poweroff reboot问题</font></B></FONT><BR><FONT class=smallfont color=#ff9900>2004-04-23 15:18 pm</FONT><BR><FONT class=normalfont>作者:作者<br>来自:Linux知识宝库<br>联系方式:无名<br><br>poweroff与reboot都是halt的连接,man halt说执行poweroff reboot halt不带参数,<br>
则调用shutdown,怎么调用的啊?#halt,poweroff就能实现停机<br>
#reboot就能实现重起。其实执行的都是halt---->shutdown,还是没高明白。<br>
<br>
<br>
<br>
【发表回复】【查看CU论坛原帖】【关闭】<br>
sw_yp 回复于:2002-12-11 16:12:46<br>
这里转帖一篇文章,我觉得这篇文章写得很清楚了,希望你以后多多用google<br>
<br>
Linux关机命令详解 <br>
本文出自:LinuxAid.com.cn 作者: sword_martin (2002-01-30 21:03:06) <br>
在linux下一些常用的关机/重启命令有shutdown、halt、reboot、及init,它们都 <br>
可以达到重启系统的目的,但每个命令的内部工作过程是不同的,通过本文的介绍,希 <br>
望你可以更加灵活的运用各种关机命令。 <br>
1.shutdown <br>
shutdown命令安全地将系统关机。 有些用户会使用直接断掉电源的方式来关闭linux, <br>
这是十分危险的。因为linux与windows不同,其后台运行着许多进程,所以强制关机可能 <br>
会导致进程的数据丢失﹐使系统处于不稳定的状态﹐甚至在有的系统中会损坏硬件设备。 <br>
而在系统关机前使用shutdown命令﹐系统管理员会通知所有登录的用户系统将要关闭。 <br>
并且login指令会被冻结﹐即新的用户不能再登录。直接关机或者延迟一定的时间才关机 <br>
都是可能的﹐还可能重启。这是由所有进程〔process〕都会收到系统所送达的信号〔signal〕 <br>
决定的。这让像vi之类的程序有时间储存目前正在编辑的文档﹐而像处理邮件〔mail〕和 <br>
新闻〔news〕的程序则可以正常地离开等等。 <br>
shutdown执行它的工作是送信号〔signal〕给init程序﹐要求它改变runlevel。 <br>
Runlevel 0被用来停机〔halt〕﹐runlevel 6是用来重新激活〔reboot〕系统﹐ <br>
而runlevel 1则是被用来让系统进入管理工作可以进行的状态﹔这是预设的﹐假定没有-h也 <br>
没有-r参数给shutdown。要想了解在停机〔halt〕或者重新开机〔reboot〕过程中做了哪些 <br>
动作﹐你可以在这个文件/etc/inittab里看到这些runlevels相关的资料。 <br>
shutdown 参数说明: <br>
[-t] 在改变到其它runlevel之前﹐告诉init多久以后关机。 <br>
[-r] 重启计算器。 <br>
[-k] 并不真正关机﹐只是送警告信号给每位登录者〔login〕。 <br>
[-h] 关机后关闭电源〔halt〕。 <br>
[-n] 不用init﹐而是自己来关机。不鼓励使用这个选项﹐而且该选项所产生的后果往 <br>
往不总是你所预期得到的。 <br>
[-c] cancel current process取消目前正在执行的关机程序。所以这个选项当然没有 <br>
时间参数﹐但是可以输入一个用来解释的讯息﹐而这信息将会送到每位使用者。 <br>
[-f] 在重启计算器〔reboot〕时忽略fsck。 <br>
[-F] 在重启计算器〔reboot〕时强迫fsck。 <br>
[-time] 设定关机〔shutdown〕前的时间。 <br>
<br>
2.halt----最简单的关机命令 <br>
其实halt就是调用shutdown -h。halt执行时﹐杀死应用进程﹐执行sync系统调用﹐ <br>
文件系统写操作完成后就会停止内核。 <br>
参数说明: <br>
[-n] 防止sync系统调用﹐它用在用fsck修补根分区之后﹐以阻止内核用老版本的超 <br>
级块〔superblock〕覆盖修补过的超级块。 <br>
[-w] 并不是真正的重启或关机﹐只是写wtmp〔/var/log/wtmp〕纪录。 <br>
[-d] 不写wtmp纪录〔已包含在选项[-n]中〕。 <br>
[-f] 没有调用shutdown而强制关机或重启。 <br>
[-i] 关机〔或重启〕前﹐关掉所有的网络接口。 <br>
[-p] 该选项为缺省选项。就是关机时调用poweroff。 <br>
<br>
3.reboot <br>
reboot的工作过程差不多跟halt一样﹐不过它是引发主机重启﹐而halt是关机。它 <br>
的参数与halt相差不多。 <br>
4.init <br>
init是所有进程的祖先﹐它的进程号始终为1﹐所以发送TERM信号给init会终止所有的 <br>
用户进程﹑守护进程等。shutdown 就是使用这种机制。init定义了8个运行级别(runlevel), <br>
init 0为关机﹐init 1为重启。关于init可以长篇大论﹐这里就不再叙述。另外还有 <br>
telinit命令可以改变init的运行级别﹐比如﹐telinit -iS可使系统进入单用户模式﹐ <br>
并且得不到使用shutdown时的信息和等待时间。 <br>
<br>
<br>
<br>
<br>
mynix 回复于:2002-12-11 22:28:35<br>
谢谢sw_yp老兄。很好的一片文章。<br>
我这不能出国,所以用不了google,但能用e.pku.edu.cn.<br>
你的建议很好。明天我还要man shutdown。因为还是不明白,poweroff,reboot都链接到<br>
halt,如不带参数,则其实调用SHUTDOWN,实现停机,重起,那SHUTDOWN又怎么实现的这些?很奇怪,很多还不是很了解,所以想搞明白。<br>
<br>
<br>
mynix 回复于:2002-12-12 09:27:08<br>
还是不明白.不带参数的话:#halt调用shutdown,shutdown调用什么?怎实现的停机?<br>
#reboot调用shutdown,shutdown调用什么?怎实现的重起?<br>
shutdown 与/etc/init.d/halt怎么个关系?/rcN.d下的文件基本都是/etc/init.d/<br>
下的链接阿.<br>
执行#halt怎实现的停机?执行#reboot怎实现的重起,怎么个调用过程?怎么个信号传递?<br>
那位知道,请指点迷津.<br>
<br>
mynix 回复于:2002-12-12 11:02:11<br>
init 0又是怎么实现关机的呢?<br>
<br>
sw_yp 回复于:2002-12-12 11:11:51<br>
[quote][b]下面引用由[u]mynix[/u]在 [i]2002/12/12 09:27am[/i] 发表的内容:[/b]<br>
还是不明白.不带参数的话:#halt调用shutdown,shutdown调用什么?怎实现的停机?<br>
#reboot调用shutdown,shutdown调用什么?怎实现的重起?<br>
shutdown 与/etc/init.d/halt怎么个关系?/rcN.d下的文件基本都是/etc/init.d/ ...<br>
[/quote]<br>
<br>
你列的问题有点乱,有点看不懂。。。我觉得上面帖的文章已经能回答你的疑问了,如果你还想深入的话,那就应该读核了<br>
下面是我理解你的问题以及我的回答<br>
<br>
问题一::#halt调用shutdown,shutdown调用什么?怎实现的停机?<br>
答:其实halt就是调用shutdown -h。halt执行时﹐杀死应用进程﹐执行sync系统调用﹐文件系统写操作完后就会停止内核。shutdownshutdown执行它的工作是送信号〔signal〕给init程序﹐要求它改变runlevel。 <br>
Runlevel 0被用来停机〔halt〕﹐runlevel 6是用来重新激活〔reboot〕系统﹐ <br>
而 runlevel 1则是被用来让系统进入管理工作可以进行的状态﹔这是预设的﹐假定没有-h也没有-r参数给shutdown。要想了解在停机〔halt〕或者重新开机〔reboot〕过程中做了些动作﹐你可以在这个文件/etc/inittab里看到这些runlevels相关的资料。 <br>
<br>
问题二:#reboot调用shutdown,shutdown调用什么?怎实现的重起?<br>
这个问题同上<br>
<br>
我个人认为上面的那篇文章已经解释得差不多了,其实shutdown到底也是发信号给init进程,你用lsof命令查看<br>
linuxtest./>#lsof |more<br>
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME<br>
init 1 root cwd DIR 3,5 1024 2 /<br>
init 1 root rtd DIR 3,5 1024 2 /<br>
init 1 root txt REG 3,5 26636 70370 /sbin/init<br>
init 1 root mem REG 3,5 454514 60242 /lib/ld-2.2.4.so<br>
init 1 root mem REG 3,5 5716491 60251 /lib/libc-2.2.4.so<br>
init 1 root 0u unix 0xc3be2540 561 socket<br>
init 1 root 10u FIFO 3,5 15076 /dev/initctl<br>
keventd 2 root cwd DIR 3,5 1024 2 /<br>
keventd 2 root rtd DIR 3,5 1024 2 /<br>
keventd 2 root 0u unix 0xc3be2540 561 socket<br>
keventd 2 root 10u FIFO 3,5 15076 /dev/initctl<br>
kapm-idle 3 root cwd DIR 3,5 1024 2 /<br>
kapm-idle 3 root rtd DIR 3,5 1024 2 /<br>
kapm-idle 3 root 0u unix 0xc3be2540 561 socket<br>
kapm-idle 3 root 10u FIFO 3,5 15076 /dev/initctl<br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -