Linux服务器关机前的工作
- 查看系统的使用状态
- 如果要看目前有谁在线上,可以下达『who』这个指令,而如果要看网路的连线状态,可以下达『 netstat -a 』这个指令,而要看背景执行的程序可以执行『 ps -aux 』这个指令。使用这些指令可以让你稍微了解主机目前的使用状态!当然啰,就可以让你判断是否可以关机了(这些指令在后面Linux常用指令中会提及喔!)
通知线上使用者关机的时刻
- 要关机前总得给线上的使用者一些时间来结束他们的工作,所以,这个时候你可以使用shutdown的特别指令来达到此一功能。
正确的关机指令使用
- 例如shutdown与reboot两个指令!
将资料同步写入硬碟中的指令: sync
惯用的关机指令: shutdown
重新开机,关机: reboot, halt, poweroff
资料同步写入磁碟: sync
在Linux系统中,为了加快资料的读取速度,所以在预设的情况中, 某些已经载入记忆体中的资料将不会直接被写回硬碟,而是先暂存在记忆体当中,如此一来, 如果一个资料被你重复的改写,那么由于他尚未被写入硬碟中,因此可以直接由记忆体当中读取出来, 在速度上一定是快上相当多的!不过,如此一来也造成些许的困扰,那就是万一你的系统因为某些特殊情况造成不正常关机(例如停电或者是不小心踢到power)时,由于资料尚未被写入硬碟当中,哇!所以就会造成资料的更新不正常啦!那要怎么办呢?这个时候就需要sync这个指令来进行资料的写入动作啦!直接在文字介面下输入sync,那么在记忆体中尚未被更新的资料,就会被写入硬碟中!所以,这个指令在系统关机或重新开机之前, 很重要喔!最好多执行几次!虽然目前的shutdown/reboot/halt 等等指令均已经在关机前进行了sync 这个工具的呼叫, 不过,多做几次总是比较放心点~呵呵~
惯用的关机指令: shutdown
由于Linux的关机是那么重要的工作,因此除了你是在主机前面以tty7图形介面来登入系统时,不论用什么身份都能够关机之外,若你是使用远端管理工具(如透过pietty使用ssh服务来从其他电脑登入主机),那关机就只有root有权力而已喔!嗯!那么就来关机试试看吧!我们较常使用的是shutdown这个指令,而这个指令会通知系统内的各个程序(processes),并且将通知系统中的run-level内的一些服务来关闭。shutdown可以达成如下的工作:
- 可以自由选择关机模式:是要关机、重新开机或进入单人操作模式均可;
- 可以设定关机时间: 可以设定成现在立刻关机, 也可以设定某一个特定的时间才关机。
- 可以自订关机讯息:在关机之前,可以将自己设定的讯息传送给线上user 。
- 可以仅发出警告讯息:有时有可能你要进行一些测试,而不想让其他的使用者干扰, 或者是明白的告诉使用者某段时间要注意一下!这个时候可以使用shutdown 来吓一吓使用者,但却不是真的要关机啦!
- 可以选择是否要fsck 检查档案系统。
那么shutdown的语法是如何呢?聪明的读者大概已经开始找『男人』了!没错,随时随地的man 一下,是很不错的举动!好了,简单的语法规则为: [code] [root@www ~]# /sbin/shutdown [-t秒] [-arkhncfF]时间[警告讯息] 选项与参数: -t sec : -t 后面加秒数,亦即『过几秒后关机』的意思 -k : 不要真的关机,只是发送警告讯息出去! -r : 在将系统的服务停掉之后就重新开机(常用) -h : 将系统的服务停掉后,立即关机。(常用) -n : 不经过init 程序,直接以shutdown 的功能来关机 -f : 关机并开机之后,强制略过fsck 的磁碟检查 -F : 系统重新开机之后,强制进行fsck 的磁碟检查 -c : 取消已经在进行的shutdown 指令内容。 时间: 这是一定要加入的参数!指定系统关机的时间!时间的范例底下会说明。 范例: [root@www ~]# /sbin/shutdown -h 10 'I will shutdown after 10 mins' #告诉大家,这部机器会在十分钟后关机!并且会显示在目前登入者的萤幕前方! # 至于参数有哪些呢?以下介绍几个吧! [/code] 展示几个
例子 [code] [root@www ~]# shutdown -h now 立刻关机,其中now相当于时间为0的状态 [root@www ~]# shutdown -h 20:25 系统在今天的20:25分会关机,若在21: 25才下达此指令,则隔天才关机 [root@www ~]# shutdown -h +10 系统再过十分钟后自动关机 [root@www ~]# shutdown -r now 系统立刻重新开机 [root@www ~ ]# shutdown -r +30 'The system will reboot' 再过三十分钟系统会重新开机,并显示后面的讯息给所有在线上的使用者 [root@www ~]# shutdown -k now 'This system will reboot' 仅发出警告信件的参数!系统并不会关机啦!吓唬人! [/code]
重新开机,关机: reboot, halt, poweroff
还有三个指令可以进行重新开机与关机的任务,那就是reboot, halt, poweroff。其实这三个指令呼叫的函式库都差不多,所以当你使用“man reboot”时,会同时出现三个指令的用法给你看呢。 既然这些指令都能够关机或重新开机,那他有没有什么差异啊?基本上,在预设的情况下, 这几个指令都会完成一样的工作!(因为halt会先呼叫shutdown,而shutdown最后会呼叫halt!)。不过,shutdown可以依据目前已启动的服务来逐次关闭各服务后才关机;至于halt却能够在不理会目前系统状况下, 进行硬体关机的特殊功能!你可以在你的主机上面使用root进行底下两个指令来关机,比较看看差异在哪里喔! 更多halt与poweroff的选项功能,请务必使用man去查询一下喔!
建议:
在重启命令: [code] [root@www ~]# sync; sync; sync; reboot 先同步几下,在root下哦 [/code] 如果无法开机了,就去看看:
http://www.ggit.info/99IT/problem-troubleshooting-of-the-linux-boot-process/(Linux开机问题排解)