【 tulaoshi.com - Linux 】
# 版权宣告: 1999 Copyright OLS3 All rights reserved.
# 作者: OLS3 (卧龙小三)
# 本讲义仅供台南县 87 学年度网路管理进阶研习班上课之用.
# 学员可保存一份自用, 供日後网管时参考备查.
# 作者保有一切形式的着作权.
# 欲作其它用途者, 需经作者授权同意.
# 未经作者授权同意之前, 请勿转载刊登.
关机
一. 关机流程
Linux 运作时, 不可以直接将电源关闭, 否则, 可能会损毁档案系统.
因此, 必须按照正常的程序关机:
观察系统使用情形(也许当时, 正有使用者做着重要的工作呢!)
通知线上使用者, 本机即将关闭. (如果, 使用者众多, 应该给予多一点的缓时间)
使用正确的 shutdown 指令.
关机使用的指令是 shutdown.
shutdown 以一种安全的方式关闭主机系统.
它会通知所有已登入的user, 主机即将关闭, 并且会将登入(login)的活动予以冻结.
shutdown 允许你:
选择关机、重新开机或进入单人操成模式
设定关机时间: 可以设定成现在立刻关机, 也可以设定某一个特定的时间,
可以自订关机之前, 传送给线上 user 的警告讯息
可以只送警讯息, 作势吓吓user, 但却不是真的要关机. 因为, 有时, 你可能想要做一些试验, 不想有其它 user 扰.
可以选择是否要 fsck 检查档案系统
当 shutdown 开始执行後, 系统会以 SIGTERM 讯号通知所有的行程(processes), 主机即将关闭.
这麽做是必要的, 因为, 如此一来, 一些在执行中的程式, 才能即时存档、清除暂存档或将仍在记忆体中的资料赶快写入硬碟中(flush).
shutdown 以讯号通知 init, 要求 init 要切换 runlevel, 来达成上述目的.
如果是关机(halt), 则切换到 runlevel 0; 若是重新开机(reboot), 则切换到 runlevel 6; 若是单人模式(single), 则切换到 runlevel 1.
然後就交给相关 runlevel 中的 script档, 完成最後的关机事项.
若欲知各 runlevel 的定义情形, 可参考 /etc/inittab.
二. 关机指令.
/sbin/shutdown [-t 秒数] [-rkhncfF] 时间 [警告讯息]
-t 秒数 : 设定在切换至不同的runlevel之前, 警告和删除二讯号之间的延迟时间(秒).
-k : 仅送出警告讯息文字, 但不是真的要 shutdown.
-r : shutdown 之後重新开机.
-h : shutdown 之後关机.
-n : 不经过 init , 由 shutdown 指令本身来做关机动作.(不建议你用)
-f : 重新开机时, 跳过 fsck 指令, 不检查档案系统.
-F : 重新开机时, 强迫做 fsck 检查.
-c : 将已经正在 shutdown 的动作取消.
例子:
shutdown -r now 立刻重新开机
shutdown -h now 立刻关机
shutdown -k now 'Hey! Go away! now....' 发出警告讯息, 但没有真的关机
shutdown -t3 -r now 立刻重新开机, 但在警告和删除processes 之间, 延迟3秒钟.
shutdown -h 10:42 'Hey! Go away!' 10:42 分关机
shutdown -r +10 'Hey! Go away!' 10 分钟後关机
shutdown -c 将刚才下的 shutdown 指令取消,必须切换至其它tty, 登入之後, 才能下此一指令.
shutdown now 切换至单人操作模式(不加任何选项时)
注意事项:
时间参数务必要加: 不是用 now, 便是用 hh:mm 或 +mm
now 其实就是 +0 的意思.
不加任何选项的话, 会进入 runlevel 1, 即单人操作模式.