# 版權宣告: 1999 Copyright OLS3 All rights reserved.
# 作者: OLS3 (臥龍小三)
# 本講義僅供台南縣 87 學年度網路管理進階研習班上課之用.
# 學員可保存一份自用, 供日後網管時參考備查.
# 作者保有一切形式的著作權.
# 欲作其它用途者, 需經作者授權同意.
# 未經作者授權同意之前, 請勿轉載刊登.
關機
一. 關機流程
Linux 運作時, 不可以直接將電源關閉, 否則, 可能會損毀檔案系統.
因此, 必須按照正常的程序關機:
關機使用的指令是 shutdown.
shutdown 以一種安全的方式關閉主機系統.
它會通知所有已登入的user, 主機即將關閉, 並且會將登入(login)的活動予以凍結.
shutdown 允許你:
當 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 | 切換至單人操作模式(不加任何選項時) |
注意事項: