正确的关机方法

  • 在 Linux 底下,由于每个程序 (或者说是服务) 都是在背景下执行的,因此, 在你看不到的屏幕背后其实可能有相当多人同时在你的主机上面工作, 例如浏览网页啦、传送信件啦以 FTP 传送文件啦等等的,如果你直接按下电源开关来关机时, 则其他人的数据可能就此中断!那可就伤脑筋了!

  • 此外,最大的问题是, 若不正常关机,则可能造成文件系统的毁损 (因为来不及将数据回写到文件中,所以有些服务的文件会有问题!)。

一、关机时注意几件事:

  1. 观察系统的使用状态
    如果要看目前有谁在在线,可以下达『 who』这个指令,而如果要看网络的联机状态,可以下达『netstat -a 』这个指令,而要看背景执行的程序,可以执行『ps -aux 』这个指令。使用这些指令可以让你稍微了解主机目前的使用状态!当然啰,就可以让你判断是否可以关机了(这些指令在后面 Linux 常用指令中会提及喔!)
  2. 通知在线使用者关机的时刻
    要关机前总得给在线的使用者一些时间来结束他们的工作,所以,这个时候你可以使用 shutdown 的特别指令来达到此一功能。
  3. 正确的关机指令使用
    例如 shutdown 与 reboot 两个指令!

由于 Linux 系统的关机/重新启动是很重大的系统运作,因此只有 root 才能够进行。不过在某些 distributions 当中,例如CentOS 系统,他允许你在本机前的tty1~tty7 当中(无论是文字界面或图形界面), 可以用一般账号来关机或重新启动!但某些 distributions 则在你要关机时,他会要你输入 root 的密码!

所以底下我们就来谈一谈几个与关机/重新启动相关的指令啰!

二、数据同步写入磁盘: sync

在 Linux 系统中,为了加快数据的读取速度,所以在默认的情况中, 某些已经加载内存中的数据将不会直接被写回硬盘,而是先暂存在内存当中,如此一来, 如果一个数据被你重复的改写,那么由于他尚未被写入硬盘中,因此可以直接由内存当中读取出来, 在速度上一定是快上相当多的!

不过,如此一来也造成些许的困扰,那就是万一你的系统因为某些特殊情况造成不正常关机 (例如停电或者是不小心踢到 power)时,由于数据尚未被写入硬盘当中,哇!所以就会造成数据的更新不正常啦! 那要怎么办呢?

这个时候就需要 sync 这个指令来进行数据的写入动作啦! 直接在文字接口下输入 sync,那么在内存中尚未被更新的数据,就会被写入硬盘中!

所以,这个指令在系统关机或重新启动之前, 很重要喔!最好多执行几次!
虽然目前的 shutdown/reboot/halt 等等指令均已经在关机前进行了 sync 这个工具的呼叫,不过,多做几次总是比较放心点~
在这里插入图片描述

事实上 sync 也可以被一般账号使用喔!只不过一般账号用户所更新的硬盘数据就仅有
自己的数据,不像 root 可以更新整个系统中的数据了。

三、惯用的关机指令:shutdown

由于 Linux 的关机是那么重要的工作,因此除了你是在主机前面以实体终端机 (tty1~tty7) 来登入系统时, 不论用什么身份都能够关机之外,若你是使用远程管理工具(如透过 pietty 使用 ssh 服务来从其他计算机登入主机), 那关机就只有 root 有权力而已喔!

我们较常使用的是 shutdown 这个指令,而这个指令会通知系统内的各个程序 (processes),并且将通知系统中的一些服务来关闭。 shutdown 可以达成如下的工作:

  1. 可以自由选择关机模式:是要关机或重新启动均可;
  2. 可以设定关机时间: 可以设定成现在立刻关机, 也可以设定某一个特定的时间才关机。
  3. 可以自定义关机讯息:在关机之前,可以将自己设定的讯息传送给在线 user 。
  4. 可以仅发出警告讯息:有时有可能你要进行一些测试,而不想让其他的使用者干扰,或者是明白的告诉使2用者某段时间要注意一下!这个时候可以使用 shutdown 来吓一吓使用者,但却不是真的要关机啦!

找『男人』了!没错,随时随地man一下,简单的语法规则为:
在这里插入图片描述
你可以输入『shutdown -c 』来取消这次的关机指令。而如果你什么参数都没有加,单纯执行 shutdown 之后, 系统默认会在 1 分钟后进行『关机』的动作
我们也提供几个常见的时间参数给你参考!
在这里插入图片描述

  • Tips 与旧版不同的地方在于,以前 shutdown 后面一定得要加时间参数才行,如果没有加上的话,系统会跳到单人维护模式中。 在这一版中, shutdown 会以 1 分钟为限,进行自动关机的任务!真的很不一样喔!所以时间参数可以不用加啰!

四、重新启动,关机: reboot, halt, poweroff

一般,在重新启动时,都会下达如下的指令:
在这里插入图片描述
既然 reboot, halt, poweroff 这些指令都能够关机或重新启动,那他有没有什么差异啊?
基本上,在预设的情况下, 这几个指令都会完成一样的工作! (全部的动作都是去呼叫 systemctl 这个重要的管理命令! ) 所以,你只要记得其中一个就好了!重点是,你自己习惯即可!
在这里插入图片描述
更多 halt 与 poweroff 的选项功能,请务必使用 man 去查询一下喔!

五、实际使用管理工具 systemctl 关机

如果你跟鸟哥一样是个老人家,那么一定会知道有个名为 init 的指令,这个指令可以切换不同的执行等级~ 执行等级共有 0~6 七个,其中 0 就是关机、 6 就是重新启动等等。不过,这个 init 目前只是一个兼容模式而已~ 所以在 CentOS 7 当中,虽然你依旧可以使用『init 0 』来关机,但是那已经跟所谓的『执行等级』无关了

那目前系统中所有服务的管理是使用哪个指令呢?那就是 systemctl 啦!这个指令相当的复杂!我们会在很后面系统管理员部份才讲的到!

目前你只要学习 systemctl 当中与关机有关的部份即可。要注意,上面谈到的 halt, poweroff, reboot, shutdown 等等,其实都是呼叫这个 systemctl 指令的喔! 这个指令跟关机有关的语法如下:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_42815188/article/details/86661890
今日推荐