Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 操作系统 > Linux > 学习笔记:Linux的系统停止与重启动命令详解
【标  题】:学习笔记:Linux的系统停止与重启动命令详解
【关键字】:Linux
【来  源】:http://www.cublog.cn/u/19412/showart.php?id=115859

学习笔记:Linux的系统停止与重启动命令详解

Your Ad Here

作者:张子坚

按照正确的过程来关闭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),赵炯 译

菜鸟必读:RHCE课堂学习笔记:【上一篇】
经常用的一些开源协议的详细解析:【下一篇】
【相关文章】
  • lINUX NFS的配置
  • linux下安装squid代理服务器
  • linux双网关双线路网络设置[ZT]
  • Linux加载网卡驱动
  • Linux 常用的网络命令!
  • 在 Red Hat Linux 8.0 下安裝 WAM1.61522
  • Linux的分段和分页机制
  • Linux下Ext2与Ext3文件系统的区别
  • 快速安装LINUX大约十分钟(所有X86下安装)
  • DNS负载均衡/和LINUX普通用户不能登陆???
  • 【随机文章】
  • 封装C++成员函数调用(3)
  • 安装solaris和dd备份磁盘出现I/Oerror的处理
  • 数学之美 系列十六 (下)- 不要把所有的鸡蛋放在一个篮子里 最大熵模型(转载)
  • WindowsXP/2000 下的 Apache+PHP+MySQL 初级建站指南
  • 怎样改变 Windows Mobile AKU 5.33 情景模式列表项顺序
  • 2006年微软移动与嵌入式开发者大会
  • 命令集锦,丰富你的知识
  • 主页秀 3.2 KEYGEN-DIKEN
  • reghat官方文档
  • 选择适合自己的AP
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.