名稱 shu td own-讓系統關機 摘要 /sbin/shutdown[-t秒][-rkhncfF]時間[警告訊息] 描述 shutdown會安全地將系統關機。在系統將要關機前,所有登入的使用者都會被通知,而且login(1)這個指令會被凍結。直接關機或者是延遲一段特定的時間才關機都是有可能的,
名稱
shu
tdown - 讓系統關機
摘要
/sbin/shutdown [-t 秒] [-rkhncfF] 時間 [警告訊息]
描述
shutdown 會 安 全 地 將 系 統 關 機 。 在 系 統 將 要 關 機 前 , 所 有 登 入 的 使 用 者 都 會 被 通 知 , 而 且 login(1) 這 個 指 令 會 被 凍 結 。 直 接 關 機 或 者 是 延 遲 一 段 特 定 的 時 間 才 關 機 都 是 有 可 能 的 , 這 是 藉 著 所 有 程 序 (process) 都 會 收 到 系 統 所 送 達 的 信 號 (signal) SIGTERM. 這 讓 一 些 象 vi(1) 這 一 類 的 程 式 有 時 間 可 以 儲 存 目 前 正 在 編 ? 的 檔 案 , 而 象 處 理 郵 件 (mail) 和 新 聞 (news) 的 程 式 可 以 正 常 地 離 開 等 等 。 shutdown 執 行 他 的 工 作 是 藉 著 送 信 號 (signal) 給 init 程 序 , 要 求 他 改 變 runlevel. Runlevel 0 是 被 用 來 停 機 (halt) , runlevel 6 則 是 用 來 重 新 啟 動 (reboot) 系 統 , 而 runlevel 1 則 是 被 用 來 讓 系 統 進 入 管 理 工 作 可 以 進 行 的 狀 態 ; 這 是 預 設 的 , 假 如 沒 有 -h 也 沒 有 -r 參 數 給 shutdown 。 要 想 了 解 在 停 機 (halt) 或 者 重 新 開 機 (reboot) 過 程 中 做 了 哪 些 動 作 , 你 可 以 在 這 個 檔 案 /etc/inittab 裡 看 到 這 些 runlevels 相 關 的 資 料。
選項
-t 秒 在 改 變 到 其 他 runlevel 之 前 , 告 訴 init(8) 在 送 警 告 訊 息 和 送 kill 信 號 (signal) 給 所 有 程 序 這 兩 件 事 之 間 , 要 等 待 多 少 秒 。
-k
並 不 會 真 的 關 機 ; 只 是 送 警 告 訊 息 給 每 位 使 用 者 。
-r
在 系 統 關 機 後 重 新 開 機。
-h
在 關 機 後 停 機 (halt) 。
-n
[不贊成] 不 呼 叫 init(8) 來 做 關 機 動 作 , 反 而 自 己 來 做 。 這 個 選 項 是 不 被 鼓 勵 使 用 的 , 而 所 產 生 的 後 果 並 不 總 是 如 你 所 預 期 的 。
-f
在 重 新 開 機 (reboot) 時 忽 略 fsck
-F
在 重 新 開 機 (reboot) 時 強 迫 fsck
-c
取 消 目 前 正 在 執 行 的 關 機 程 序 。 而 這 個 選 項 當 然 不 可 能 會 有 時間 這 個 參 數 , 但 你 可 以 輸 入 一 個 用 來 解 釋 的 訊 息 , 而 這 訊 息 將 會 送 達 每 位 使 用 者 。
時間
關 機 (shutdown) 的 時 間 。
警告訊息
送 給 每 位 使 用 者 的 訊 息 。
這 個 時 間 參 數 可 以 有 不 同 的 格 式 。 首 先 , 它 可 以 是 這 種 格 式 hh:mm 的 絕 對 時 間 , 而 在 此 的 hh 是 指 小 時 (一 位 或 者 兩 位 數 字) , 而 mm 則 是 指 分 鐘 (兩 位 數 字) 。 第 二 , 他 也 可 以 用 這 種 格 式 +m 表 示 , 在 這 裡 m 這 個 數 字 代 表 是 指 要 等 待 幾 分 鐘 。 而 這 個 字 now 則 是 等 於 +0 。
這 個 旗 標 -f 代 表 的 是 快 速 重 新 開 機 (reboot fast) 。 這 會 產 生 一 個 參 考 性 質 的 檔 案 /fastboot , 而 他 會 在 系 統 重 新 啟 動 時 被 檢 查 。 這 個 開 機 的 rc 檔 案 可 以 去 檢 查 這 個 檔 案 是 否 存 在 , 而 決 定 不 去 執 行 fsck(1) , 因 為 這 系 統 已 ? 以 適 當 的 方 式 關 了 機 。 在 這 之 後 , 這 個 開 機 程 序 將 會 移 除 /fastboot 這 個 檔 案 。
這 個 旗 標 -F 意 味 著 強 迫 執 行 fsck (force fsck) 。 這 會 產 生 一 個 參 考 性 質 的 檔 案 /forcefsck , 而 他 會 在 系 統 重 新 啟 動 時 被 檢 查 。 這 個 開 機 的 rc 檔 案 可 以 去 檢 查 這 個 檔 案 是 否 存 在 , 而 去 執 行 fsck(1) 並 加 上 特 別 的 參 數 `force' , 讓 那 些 沒 有 適 當 卸 載 (unmount) 的 檔 案 系 統 也 會 被 檢 查 。 在 這 之 後 , 這 個 開 機 程 序 將 會 移 除 /forcefsck 這 個 檔 案 。
這 個 旗 標 -n 會 造 成 shutdown 不 去 呼 叫 init , 反 而 去 殺 掉 所 有 正 在 執 行 的 程 序 。 shutdown 然後 將 會 關 掉 (turn off) 硬 碟 限 額 (quota) , 會 計 (a
clearcase/" target="_blank" >ccounting) , 以 及 交 換 (swapping) 和 卸 載 掉 (umount) 所 有 的 檔 案 系 統。
使用控制
當 這 神 奇 的 按 鍵 CTRL-ALT-DEL 被 按 下 時 , shutdown 會 被 init(8) 所 呼 叫 , 這 是 藉 著 在 /etc/inittab 這 個 檔 案 裡 加 入 適 當 的 資 料 。 這 意 味 著 每 個 可 以 接 觸 主 控 台 (console) 按 鍵 的 人 都 可 以 關 掉 系 統 。 會 了 避 免 這 樣 , shutdown 可 以 檢 查 是 否 有 符 合 資 格 的 使 用 者 登 入 某 個 虛 擬 控 制 台 。 假 如 shutdown 被 init(8) 呼 叫 時 , 它 會 檢 查 這 個 檔 案 /etc/shutdown.allow 是 否 存 在 , 然 後 比 較 在 這 檔 案 所 列 出 的 登 入 名 稱 和 登 入 在 虛 擬 控 制 台 (virtual console) 的 使 用 者 ( 從 這 個 檔 案 /var/run/utmp 得 知 ), 只 有 當 其 中 有 位 符 合 資 格 的 使 用 者 或 root 已 ? 登 入 , 它 才 會 被 執 行 。 否 則 他 會 秀 出 這 些 訊 息
shutdown: no authorized users logged in
到 系 統 的 ( 實 際 上 ) 主 控 台 (console) 。 這 個 檔 案 /etc/shutdown.allow 的 格 式 是 每 行 只 能 有 一 個 使 用 者 名 稱 。 空 白 行 和 注 解 行 ( 字 首 為 # ) 都 是 被 允 許 的 。 目 前 這 個 檔 案 限 制 只 能 有 32 位 使 用 者 。
相關檔案
/fastboot /etc/inittab /etc/init.d/halt /etc/init.d/reboot /etc/shutdown.allow
臭蟲
並 不 是 真 的 有 臭 蟲 (
bug) , 是 因 為 大 部 份 的 使 用 者 忘 了 給 時間 這 個 參 數 , 而 讓 shutdown 所 產 生 的 錯 誤 訊 息 給 搞 糊 塗 了 。 這 個 時間 參 數 是 一 定 要 有 的 ; 而 十 次 中 會 有 九 次 這 個 參 數 會 是 now 這 個 字 哦 !
作者
Miquel van Smoorenburg,
[email protected] 相關說明
fsck(8) , init(1) , halt(8) , reboot(8)(BP 1.0)