免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 970 | 回复: 0
打印 上一主题 下一主题

学习笔记:Linux的系统停止与重启动命令详解 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-05-21 18:04 |只看该作者 |倒序浏览
声明:可以自由转载本文,但请务必保留本文的完整性。
作者:张子坚
说明:本文所涉及示例均在fedora core3下得到。
按照正确的过程来关闭Linux系统是很重要的。如果你没有这样做,你的文件系统很可能会变得毫无价值并且文件也会变得混乱。这是因为Linux有一个磁盘缓冲,它不会将数据立刻写入磁盘的,而是在一定的间隔时间。这极大地改进了性能,但也意味着如果你随意地关闭电源,此时缓冲中可能保存着许多数据并且磁盘上的数据会不完全而不能成为一个完整运行的文件系统(因为只有一些数据被写入硬盘)。

不能仅仅扳动电源开关的另一个理由是,在一个多任务系统中,后台可能正运行着许多程序,随意地关闭电源损失会非常惨重的。通过进行适当的关机过程,你可以确信所有的后台进程都能保存它们的数据。



以下详细介绍停止与重启动命令,它们分别为init,runlevel,telinit,halt,shutdown,reboot
init

init[option][runlevel]

系统管理命令。


选项
-t seconds
    当运行级别改变时,在SIGTERM之后经过seconds秒发送SIGKILL。默认值为20。
文件
init是任意一台Unix机器在启动时都要执行的第一个进程。它验证所有文件系统的完整性,然后用fork和exec创建和执行其他进程,就像由/etc/inittab指定的那样。哪一个进程可以运行由/runlevel控制。所有结束的进程都被记录在/var/run/utmp/和/var/log/wtmp中。当运行级改变时,init给所有不能在新的运行级别上执行的进程发送SIGTERM信号,20秒后,发送SIGKILL信号。


运行级别
当前运行级别可以由telinit改变,telinit通常仅仅是到init的一个链接。默认的运行级别随发布版的不同而不同,但以下是标准级别:
0 停止系统。
1, s, S 单用户模式。
6 重新启动系统。
q,Q 重读/etc/inittab。
可以在/etc/inittab文件中查出自己系统的运行级别。

runlevel

系统管理命令。显示以前和当前系统的运行级别。

telinit

telinit[option][runlevel]

系统管理命令。发信号通知init改变系统的运行级别。init是所有进程的祖先,telinit实际上是到init的一个链接。

选项
-t seconds
在发送SIGTERM信号seconds秒之后发送SIGKILL。默认值为20。运行级别
默认的运行级别随发布版的不同而不同,但是,也有一些标准:
0 停止系统。
1 , s, S 单个用户。
6 重新启动系统。
a, b , c 仅仅处理在/etc/inittab中运行级别被标记为a,b或c的条目。
q, Q 重读/etc/inittab文件。
在/etc/inittab文件中查阅系统的运行级别。

halt


halt[options]

系统管理命令。在文件/var/log/wtmp中插入一条记录日志。如果系统处于运行级别0或6,则停止所有进程;否则调用shutdown -nf。


选项
-d 禁止在/var/log/wtmp中写。
-f 即使在shutdown -nf被正常调用时也调用halt(也就是说,即使不是运行级别0或6,也强制调用halt)。
-n 禁止对sync的正常调用。
-w 禁止正常执行,只把记录日志写到/var/log/wtmp中。

shutdown[options]when[message]

系统管理命令。终止所有进程。when可以是指定的时间(以hh:mm格式)、要等待的分钟数(以+m格式),或者now。一条广播消息通知所有用户离开系统。给进程发送SIGTERM信号,以让它们体面地退出。调用/etc/init执行是的关机,其操作之一是把系统置于运行级别1。只有特权用户才能执行shutdown命令。在默认或者有定义的情况下,广播消息在宽限期期间以规则的间隔进行广播,越临近关闭时间,消息的广播越频繁。

选项
-c 取消正在进行中的关闭操作。
-f 快速重新启动,在重新启动时禁止对fsck的常规调用。
-h 当关闭完成时停止系统。
-k 输出警告信息,但禁止实际的关闭。
-n 不调用init就执行关闭。
-r 当关闭完成时重新启动系统。
-t sec 在杀死进程与改变运行级别之间确保延时sec秒。

例:

# shutdown -h +10 'We will install a new disk. System should
> be back on-line in three hours.'

这将警告所有用户系统将在十分钟后关闭,并且他们最好马上退出以防止数据的丢失。警告信息将显示在所有登录的用户的终端上。

reboot

reboot[options]
系统管理命令,停止文件系统,关闭系统,然后重新启动系统。因为这条命令立即停止所有的进程,所以它应该只在单用户模式下运行。如果系统不在0级或6级上运行,reboot就调用shutdown -nf。

选项
-d 禁止写/var/log/wtmp。
-f 即使要正常调用shutdown,也调用reboot。
-n 禁止对sync的常规调用。
-w 禁止正常执行;只是写/var/log/wtmp。

uptime

输出当前时间,联机操作的时间量、当前登陆的用户数(可以包括同一用户的多次登陆)以及系统负载平均值。这种输出也可以由w命令的第一行产生。
说明:
SIGTERM信号,SIGKILL信号,sync,fsck

有两个信号可以停止进程:SIGTERMSIGKILLSIGTERM比较友好,进程能捕捉这个信号,根据您的需要来关闭程序。在关闭程序之前,您可以结束打开的记录文件和完成正在做的任务。在某些情况下,假如进程正在进行作业而且不能中断,那么进程可以忽略这个SIGTERM信号。

对于SIGKILL信号,进程是不能忽略的。这是一个 “我不管您在做什么,立刻停止”的信号。假如您发送SIGKILL信号给进程,Linux就将进程停止在那里。

有些人喜欢使用三次sync来关闭系统,等待磁盘I/O停止,然后关闭电源。如果没有程序运行着,那么这和使用shutdown是等同的。然而,这样做没有卸载任何文件系统并且可能会导致ext3fs的“干净文件系统”标志。三次使用sync来关闭系统的方法不值得推荐。

参考文献:

  • 《红帽Linux 9 从入门到精通》,[美] Michael jang著 邱仲潘 等译 SYBEX 电子工业出版社
  • 《Linux in a Nutshell》,Ellen Siever,Stepben Spainbour,Stepben Figgins&Jessica P.Hekman著 陈莉君 孟彩霞 王曙燕 译 O’REILLY 中国电力出版社
  • 《Linux系统管理者手册》,Lars Wirzenius著(email:
    liw@iki.fi
    ),赵炯 译



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/19412/showart_115859.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP