前言:由于在linux底下,每个程序(或者说是服务)都是在背景下运行的,因此,在你看不到的屏幕背后其实可能有相当多人同时在你的主机上面工作,如果 你直接按下电源开关来关机,则可能导致其他人的数据就此中断。此外最大的问题是,若是不正常关机,由于来不及把数据回写到档案中,从而可能造成档案系统的 损毁。因此,正确的linux系统关机姿势是非常重要的。

正常情况下,要关机时需要注意底下几件事:

  • 观察系统的使用状态:如果要看目前有谁在线,可以用who指令;如果要看网络的联机状态,可以用netstat -a这个指令;要看背景执行的程序可以用ps -aux这个指令。
  • 通知在线使用者关机的时刻:要关机前给在线的使用者一些时间来结束他们的工作,这个时候可以使用shutdown的特别指令来达到这一功能。
  • 正确的关机指令使用:例如shutdown与reboot。
  • 将数据同步写入硬盘中的指令:sync
  • 惯用的关机指令:shutdown
  • 重启,关机:reboot,halt,poweroff
  • 数据同步写入磁盘:sync

在linux系统中,为了加快数据的读取速度,所以,在预设的情况下,某些数据将不会直接被写入硬盘,而是先暂存在内存中。不过如此一来也就造成了万一当你重新开机,或者是关机,或者是不正常的断电的情况下,由于数据尚未被写入硬盘当中,而导致的数据更新不正常。这个时候就需要sync这个指令来进行数据的写入动作。直接在文字接口下输入sync,那么在内存中尚未被更新的数据,就会被写入硬盘中。(注:这个指令只有root可以执行)

  • 惯用的关机指令:shutdown

由于关机有种种的限制因子在,所以只有root有权力关机。我们较常用的是shutdown这个指令,这个指令会通知系统内的各个程序(processes),并且将通知系统中的run-level内的一些服务来关闭。

[root@linux ~]# shutdown [-t时间] [-arkhncfF] [时间] [警告信息]
参数:
-t sec :-t 后面加秒数,即【过几秒后关机】的意思
-k      :不是真的关机,只是发送警告信息出去
-r       :在将系统的服务停掉之后就重新开机
-h      :将系统的服务停掉后,立即关机
-n      :不经过init程序,直接以shutdown功能来关机
-f      :关机并开机之后,强制略过fsck的磁盘检查
-F     :系统重新开机之后,强制进行fsck的磁盘检查
-c     :取消已经在进行的shutdown指令内容 

此外,需要注意的是,时间参数请务必加入,否则会自动跳到run-level1(就是单人维护的登入情况)

[root@linux ~]# shutdown -h now
立刻关机
[root@linux ~]# shutdown -h :
系统在今天的20:25会关机
[root@linux ~]# shutdown -h +
系统再过十分钟后自动关机
[root@linux ~]# shutdown -r now
系统立刻重启
[root@linux ~]#shutdown -r + 'The system will reboot'
再过三十分钟系统会重启,并显示后面的讯息
[root@linux ~]# shutdown -k now 'This system will reboot'
仅发出警告信息
  • 重启,关机:reboot,halt,poweroff

这三个指令差不多,用途上有点不同而已。reboot与shutdown -r now几乎相同。不过建议在关机前还是用sync将数据回填的指令下达一次再说。

  • 开机过程的问题排解

扇区错乱的问题

  • 如果根目录没有损毁:假设发生错误的磁盘扇区块在/dev/hda7,那么在开机的时候屏幕应该会告诉你:press root pass word or ctrl+D: 这个时候请输入root的密码登入系统:
  1. 在光标处输入root密码登入系统,进行单人单机的维护工作;
  2. 输入fsck /dev/hda7 (fsck为指令,/dev/hda7为错误的磁盘区块,请根据情况下达参数),这时屏幕会显示开始修理硬盘的信息,如果发现有任何错误时,会显示clear[Y/N]?的询问信息,就直接输入Y。
  3. 修理完成,以reboot重新开机。
  • 如果根目录损毁:一般初学者喜欢将自己的硬盘只划分为一个大区块,即只有根目录。那硬盘区块错乱一定是根目录的问题。这时可以将硬盘拔掉,接到另一台linux系统的计算机上,并且不要挂载(mount)该硬盘,然后以root的身份执行fsck /dev/hdb1(/dev/hdb1指硬盘装置的名称,根据实际情况来设定)。
  • 如果整个硬盘坏掉:实在坏的离谱就换一颗,如果不愿意换硬盘,就重灌linux,并且在重灌的时候于format项目中,选取[error check]项目,如此一来format会很慢,并且何时会再坏掉也不确定。最好还是换一颗。

linux杂记(五)正确关机方法(shutdown,reboot,init,halt)的更多相关文章

  1. CentOS正确关机方法(转)

    CentOS正确关机方法 1关机前准备 1.1观察系统使用状态 ·         谁在线:who ·         联网状态:netstat -a ·         后台执行的程序:ps -au ...

  2. CentOS正确关机方法

    1关机前准备 1.1观察系统使用状态 ·         谁在线:who ·         联网状态:netstat -a ·         后台执行的程序:ps -aux 1.2通知在线使用者关 ...

  3. init shutdown reboot poweroff halt区别

    init 首先看看LINUX系统几种运行级别# 0 - 停机(千万别把initdefault设置为0,否则系统永远无法启动)# 1 - 单用户模式# 2 - 多用户,没有 NFS# 3 - 完全多用户 ...

  4. 关机相关(shutdown,reboot)

    慣用的關機指令: shutdown 由於Linux的關機是那麼重要的工作,因此除了你是在主機前面以tty7圖形介面來登入系統時, 不論用什麼身份都能夠關機之外,若你是使用遠端管理工具(如透過piett ...

  5. linux mint 五笔安装方法

    终于可以使用五笔了,方法就是安装好ibus后要设置首选项,这样在首选项里设置就可以了.

  6. 正确的关机方法: sync, shutdown, reboot, halt, poweroff, init

    正常情况下,要关机时需要注意底下几件事: 观察系统的使用状态: 如果要看目前有谁在在线,可以下达『who』这个命令,而如果要看网络的联机状态,可以下达 『 netstat -a 』这个命令, 而要看背 ...

  7. Linux常用命令学习3---(文件的压缩和解压缩命令zip unzip tar、关机和重启命令shutdown reboot……)

    1.压缩和解压缩命令    常用压缩格式:.zip..gz..bz2..tar.gz..tar.bz2..rar .zip格式压缩和解压缩命令        zip 压缩文件名 源文件:压缩文件   ...

  8. 【2016-10-11】Linux系统常用的关机或重启命令shutdown、reboot、halt、poweroff、init 0及init 6的联系与区别

    Linux下常用的关机/重启命令一般包括: shutdown.reboot.halt.poweroff等,当然了我们可以使用init 运行等级runlevel 0即halt来关机,或使用init 运行 ...

  9. linux 正确的关机方法

    正确的关机方法 1. 查看系统的使用状态 执行who命令或者netstat -a ,要查看后台执行的程序可以执行“ps -aux” 2. 正确的关机命令 1)将内存中数据同步写入磁盘:sync,这个命 ...

随机推荐

  1. JavaScript可以这样用

    javascript:Qrlink(<%#Eval("ActivityType")%>,<%#Eval("ID")%>,<%#Ev ...

  2. JavaScript的日期处理

    很久前写的代码了,偶尔看到贴出来做个备忘,写得有点乱,懒得整理了. // 根据初始日期和滚动周期及滚动次数来计算终止日期,日期滚动周期,// 可以是每天(DAY).每周(WEEK).每月(MONTH) ...

  3. Objective-c开发教程--MRC和ARC混编

    iOS5.0以后就开始可以使用ARC来代替之前的MRC. 1.ARC中使用MRC的类.方法如下: 在targets的build phases选项下Compile Sources下选择要不使用arc编译 ...

  4. 为什么析构函数要加visual?

    一般来说,有使用visual的类,其析构函数都需要加上visual,这是为什么呢? 因为使用多态时,一般都是由基类指针来使用派生类的,在删除这个派生类对象时也一样,由基类指针来调用, 可以想象,如果析 ...

  5. Programming C#.Classes and Objects.成员方法

    this关键字指向类的当前实例,this指针是类中所有非静态方法的隐藏指针,每个方法都能通过this指针指向对象的其他方法和成员变量. 因为对一个类来说,它的成员函数(方法)只有一份,所有的实例对象共 ...

  6. C/C++ 结构体成员在内存中的对齐规则(转载)

    这几天在看王艳平的<windows 程序设计>,第5章讲解了MFC框架是怎么管理窗口句柄到窗口实例之间的映射,用到了两个类CPlex和CMapPtrToPtr,用于管理内存分配的类(避免因 ...

  7. jquery解决onmouseover和onmouseout合用的bug问题

    经常会遇到鼠标放到一个元素上显示另外一个元素,这两个元素是父子关系,比如在A上绑定mouseover和mouseout事件来显示或隐藏B元素,A元素包含B元素,当鼠标移到B元素后浏览器认为你移开了A, ...

  8. [置顶] js 控制文章中字体的大小,mootools实现

    文中字体要12.14.16号中选择: <span class="zh">字号:<b class="change-font">12< ...

  9. Android 调用系统通讯录

    这个过程有三步:1)许可向你的应用程序的manifest中添加读取通讯录数据的许可  <uses-permission android:name="android.permission ...

  10. JQuery easyui (4)LinkButtion(按钮)组件

    居然还有button组件 - - linkButton组件的加载方式 1,class加载 <a class='easyui-linkbtuton'>按钮<a> 2,js加载 $ ...