Linux系统的关机/重新启动是很重大的系统运行,因此只有root才能够进行例如shutdown, reboot等命令。不过在某些distributions当中,比如CentOS系统,它允许你在本机前的tty7使用图形接口登陆时,可以用一般账号来关机或重新启动!但某些distributions则在你要关机时,他会要你输入root的密码。
数据同步写入磁盘: sync
在Linux系统中,为了加快数据的读取速度,所以在默认的情况中,某些已经加载内存中的数据将不会直接被写回硬盘,而是先缓存在内存当中,如此一来, 如果一个数据被你重复的改写,那么由于它尚未被写入硬盘中,因此可以直接由内存当中读取出来, 在速度上一定是快上相当多的!
不过,如此一来也造成些许的困扰,万一你的系统因为某些特殊情况造成不正常关机 (例如停电或者是不小心按到电源)时,由于数据尚未被写入硬盘当中,
所以就会造成数据的升级不正常! 那要怎么办呢?这个时候就需要sync这个命令来进行数据的写入动作! 直接在字符界面下输入sync,那么在内存中尚未被升级的数据,就会被写入硬盘中!
所以,这个命令在系统关机或重新启动之前, 很重要。最好多运行几次!
虽然目前的 shutdown/reboot/halt 等等命令均已经在关机前进行了 sync 这个工具的执行, 不过,多做几次还是比较保险。
关机命令: shutdown
shutdown可以达成如下的工作:
可以自由选择关机模式:是要关机、重新启动或进入单人操作模式均可;
可以配置关机时间: 可以配置成现在立刻关机, 也可以配置某一个特定的时间才关机。
可以自定义关机信息:在关机之前,可以将自己配置的信息传送给在线 user 。
可以仅发出警告信息:有时有可能你要进行一些测试,而不想让其他的使用者干扰, 或者是明白的告诉使用者某段时间要注意一下!这个时候可以使用 shutdown 来吓一吓使用者,但却不是真的要关机。
可以选择是否要 fsck 检查文件系统 。
shutdown的基本语法规则:
[root@lmode ~]# /sbin/shutdown [-t 秒] [-arkhncfF] 时间 [警告信息]
选项与参数:
-t sec : -t 后面加秒数,亦即『过几秒后关机』的意思
-k : 不要真的关机,只是发送警告信息出去!
-r : 在将系统的服务停掉之后就重新启动(常用)
-h : 将系统的服务停掉后,立即关机。 (常用)
-n : 不经过 init 程序,直接以 shutdown 的功能来关机
-f : 关机并启动之后,强制略过 fsck 的磁盘检查
-F : 系统重新启动之后,强制进行 fsck 的磁盘检查
-c : 取消已经在进行的 shutdown 命令内容。
时间 : 这是一定要加入的参数!指定系统关机的时间!
范例:
[root@lmode~]# /sbin/shutdown -h 10 'I will shutdown after 10 mins'
# 告诉大家,这部机器会在十分钟后关机!并且会显示在目前登陆者的屏幕前方!
# 至于参数有哪些呢?以下介绍几个吧!
[root@lmode ~]# shutdown -h now
立刻关机,其中 now 相当于时间为 0 的状态
[root@lmode ~]# shutdown -h 20:25
系统在今天的 20:25 分会关机,若在21:25才下达此命令,则隔天才关机
[root@lmode ~]# shutdown -h +10
系统再过十分钟后自动关机
[root@lmode ~]# shutdown -r now
系统立刻重新启动
[root@lmode ~]# shutdown -r +30 'The system will reboot'
再过三十分钟系统会重新启动,并显示后面的信息给所有在在线的使用者
[root@lmode ~]# shutdown -k now 'This system will reboot'
仅发出警告信件的参数!系统并不会关机啦!吓唬人!
还有三个命令可以进行重新启动与关机的任务,那就是reboot, halt, poweroff。在重新启动时下达如下的命令:
[root@lmode ~]# sync; sync; sync; reboot
既然这些命令都能够关机或重新启动,那他有没有什么差异啊?基本上,在默认的情况下, 这几个命令都会完成一样的工作!(因为halt会先呼叫shutdown,而shutdown最后会呼叫halt!)。 不过,shutdown可以依据目前已启动的服务来逐次关闭各服务后才关机;至于halt却能够在不理会目前系统状况下, 进行硬件关机的特殊功能!你可以在你的主机上面使用root进行底下两个命令来关机,比较看看差异在哪里!
名称:halt
使用权限:系统管理者
使用方式:halt [-n] [-w] [-d] [-f] [-i] [-p]
说明:若系统的 runlevel 为 0 或 6 ,则关闭系统,否则以 shutdown 指令(加上 -h 参数)来取代
参数:
-n : 在关机前不做将记忆体资料写回硬盘的动作
-w : 并不会真的关机,只是把记录写到 /var/log/wtmp 档案里
-d : 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d) -f : 强迫关机,不呼叫 shutdown 这个指令
-i : 在关机之前先把所有网络相关的装置先停止
-p : 当关机的时候,顺便做关闭电源(poweroff)的动作
范例:
halt -p 关闭系统后关闭电源。
halt -d 关闭系统,但不留下纪录。
reboot的工作过程差不多跟halt一样﹐不过它是引发主机重启﹐而halt是关机。它的参数与halt相差不多。
切换运行等级: init
其实Linux共有七种运行等级, 这里先介绍四种运行等级:
run level 0:关机
run level 3:纯文本模式
run level 5:含有图形接口模式
run level 6:重新启动
那如何切换各模式呢?可以使用init这个命令来处理喔!也就是说,如果你想要关机的话, 除了上述的shutdown -h now以及poweroff之外,你也可以使用如下的命令来关机:
[root@lmode ~]# init 0
No comments:
Post a Comment