前言:由于在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. android handler机制和Timer采用

    Timer主要用于创建一个任务来定期运行. 创建继承Task该任务等级.即任务每次跑. private class MyTask extends TimerTask { @Override publi ...

  2. 浏览器返回按钮不会触发onLoad事件

    最近在做一个移动端项目,发现移动端某些返回和PC端是有差异的, 比如ios中返回按钮是直接使用缓存的, 不会执行任何js代码, 这个问题很蛋疼, 例如, 在提交的时候将按钮设置为loading状态, ...

  3. JavaScript 字符串实用常用操作

    字符串截取1. substring()xString.substring(start,end)substring()是最常用到的字符串截取方法,它可以接收两个参数(参数不能为负值),分别是要截取的开始 ...

  4. SharePoint解决方案由VS2010升级到VS2013部署页面报错

    “/”应用程序中的服务器错误.----------------------------------------文件“/_CONTROLTEMPLATES/....../XXXUserControl.a ...

  5. BZOJ 1087 互不侵犯king

    Description 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子. Input 只有一行,包 ...

  6. puts fputs printf的区别

    puts()显示字符串时自动在其后添加一个换行符,函数里的参数是一个地址,从该地址向后面输出,直到遇到空字符,所以要确保输出的字符串里要有空字符.与gets()函数一起使用. fputs()需要第二个 ...

  7. 【Howie玩docker】-docker安装

    windows忽略,小苹果木有,所以咱只看ubuntu和centOS的吧! 参考书<Docker技术入门与实战> Ubuntu 14.04安装Docker Ubuntu 14.04版本官方 ...

  8. Orchard 源码探索(Localization)之国际化与本地化

    本地化与国际化 基本上相关代码都在在Orchard.Framework.Localization中. T("english")是如何调用到WebViewPage.cs中的Local ...

  9. CentOS rc.local 不执行的问题

    centos7 开机/etc/rc.local 不执行的问题 时间:2015-02-09 00:54来源:blog.51cto.com 作者:“闲潭小筑” 博客, 举报 点击:次 最近发现centos ...

  10. rsyslog 传输mysql 日志

    在另外一种环境中,让我们假定你已经在机器上安装了一个名为"foobar"的应用程序,它会在/var/log下生成foobar.log日志文件.现在,你想要将它的日志定向到rsysl ...