在Windows系统(非NT主机系统)中,都是单人假多任务的情况,所以你的计算机关机,对于别人应该不会有影响,但在Linux中每个程序或者服务都是在在背景下执行的,因此可能有相当多人同时在你的主机上面工作,如果你直接关机时,其他人的数据可能就此中断!那可伤脑筋了! 那么在Linux系统中,如果想要关机,需要注意哪些问题呢?

  1. 观察系统的使用状态: 如果要看目前有谁在在线,可以使用[who]这个命令 要看网络的联机状态可以使用[netstat]这个命令 要看背景执行的程序可以执行使用[ps -aux]这个命令 使用这些命令了解主机目前的使用状态!
  2. 通知在线使用者关机的时刻: 要关机前总得给在线的使用者一些时间来结束他们的工作,所以,这个时候你可以使用 shutdown 的特别命令来达到此一功能。
  3. 正确的关机 命令使用: 例如 shutdown 和 reboot 两个命令!

接下来我们谈一谈几个关于关机/重启的相关命令

  • 将数据同步写入硬盘中的挃令: sync
  • 建议使用的关机命令: shutdown

Linux系统的关机/重新启劢是径重大的系统运作,因此只有root才能够迚行。 数据同步写入磁盘: sync 在数据在计算机中的运作时,所有的数据都要被读入内存中才能被cpu所处理,但是数据又需要常常有内存写回硬盘中,例如存储的动作,由于硬盘的速度太慢(相对于内存来说),如果常常让数据在内存与硬盘中来回写入与读出,系统的功效就不会太好,因此在Linux系统中,为了加快数据的读取速度,在默认的情况下,某些加载内存中的数据将不会直接被写回硬盘,而是暂存在内存中,如此一来,如果一个数据被你重复的改写,那么由于他尚未被写入硬盘中,因此可以直接在内存中读取,在速度上是足够快的。 不过也会造成一些困扰,那就是万一你的系统因为某些特殊情况造成不正常关机(停电或者等等),由于数据尚未写到磁盘。可能会造成数据的更新不正常,所以这个时候需要进行数据的写入动作,直接在命令窗口输入[sync],那么内存中尚未被更新的数据就会被写入硬盘中!所以这个命令在系统关机重启钱执行很重要,最好多执行几次! 虽然目前的shutdown/reboot/hat等等命令均已经在关机前执行了[sync]命令,不过多执行几次还是比较放心。 在使用远程管理工具,能有关机权限的只有root用户 那举就来关机试试看吧!我们较常使用的是shutdown这个命令,而这个命令会通知系统内的各个程序 (processes),并且将通知系统中的run-level内的一些服务来关闭。shutdown可以达成如下的工作:

  • 可以自由选择关机模式:是要关机、重新启动或进入单人操作模式均可;
  • 可以设定关机时间: 可以设定成现在立刻关机, 也可以讴定某一个特定的时间才关机。
  • 可以自定丿关机讯息:在关机乀前,可以将自己讴定的讯息传送给在线 user 。
  • 可以仅发出警告讯息:有时有可能你要迚行一些测试,而丌想让其他的使用者干扰, 戒者是明白的告诉使用者某段时间要注意一下!这个时候可以使用 shutdown 来吓一吓使用者,但即丌是真的要关机啦!
  • 可以选择是否要 fsck 检查文件系统 。

来看一下shutdown的语法 shutdown -h 10 'I will shutdown after 10 mins' 十分钟之后关机并将'I will shutdown after 10 mins'显示在目前登陆者的屏幕上

shutdown -h now shutdown -h 0 现在立刻关机,其中now想点关于时间为0

shutdown -h 20:25 系统会在20:25关机,如果在20:25分以后下达此命令,则会隔天关机

shutdown -h +10 系统在过十分钟后自动关机

shutdown -r now shutdown -r 0 系统现在立即重启

shutdown -r +30 'the system will reboot' 系统会在30分钟后重启,并将'the system will reboot'显示在目前登陆者的屏幕上

shutdown -k now 'this system will reboot' 发出信息'this system will reboot'给在线的使用者,但是不做任何操作,只是发信息

切换执行等级: init 系统运作的模式,分为纯文本(run level 3)及图形接口模式(run level 5)。除了这两种模式外,有没有其他模式呢?其实Linux共有七种执行等级, 七种等级的意义我们找机会再谈。现在我们只要知道底下四种执行等级就好了:

run level 0:关机 run level 3:纯文本模式 run level 5:含有图形窗口模式 run level 6:重新启动

那如何切换各模式呢?可以使用init这个命令来处理喔!也就是说,如果你想要关机的话, 除了上述的shutdown -h now之外,你也可以使用如下的命令来关机: init 0

切换模式

init 3 切换到纯文本模式

init 5 切换到图形窗口模式