SHUTDOWN(8)

NAME
shutdown - 關閉系統

總覽 SYNOPSIS
/sbin/shutdown [-t sec] [-arkhncfF] time [warning-message]

描述 DESCRIPTION
shutdown 以一種安全的方式關閉系統。所有登陸使用者都可以看到關機信息提示，並且 login(1) 將被阻塞。可以指定立刻關機，也可以指定系統在一定的延時後關機。所有進程都將接收到 SIGTERM 信號。這可以使 vi(1) 等程式有時間將處於編輯狀態的檔案進行存儲，郵件和新聞程式進程則可以將所有緩沖池內的數據進行適當的清除等等。 shutdown 通過通知 init 進程，要求它改換運行級別來實現。運行級別 0 用來關閉系統，運行級別 6 用來重啟系統，運行級別 1 用來使系統進入執行系統管理任務狀態，如果沒有給出 -h 或 -r 標誌時，這是 shutdown 命令的預設工作狀態。具體關機或重啟所執行的操作請查閱 /etc/inittab 檔案中相應的運行級別欄。

選項 OPTIONS

-a  使用 /etc/shutdown.allow 來驗証身份。

-t sec
    通知 init(8) 在轉換到其它運行級別前，發送警告 (warning) 信號後延時 (sec) 秒數後再發送關閉 (kill) 信號。

-k  並非真正關機，只向所有人顯示警告訊息。

-r  重啟。

-h  停機。

-n  [DEPRECATED(不應再使用)] 不調用 init(8) 程式進行關機操作，而由自己進行。不建議使用者使用這種關機方式，它的結果一般也不是你希望的那樣。

-f  重啟時跳過磁碟檢測。

-F  重啟時強制磁碟檢測。

-c  取消運行中的 shutdown 進程。不可能為此選項指定 time 參數，但你可以在命令行輸入一條解釋消息來向所有使用者說明。(一般的shutdown指令可以用按「+」號來進行中斷)

time
    關機時間。

warning-message
    發送給所有使用者的消息。

 time 參數的格式可以有很多種。首先，可以是 hh:mm 格式的絕對時間，其中 hh 指的是小時（一到二位數），mm 指的是分鐘（二位數）。第二種是 +m 格式，其中 m 指的是等待的分鐘數。 now 是 +0 的別名。

如果 shutdown 在調用時使用了延時，它將自動創建一個咨詢 (advisory) 檔案 /etc/nologin ，作用是禁止 login(1) 允許新使用者登陸，除非 shutdown 在向 init 發信號前意外中止 (就是說，它被取消或出了什麼問題)。它會在調用 init 改變運行級之前刪除這個檔案。

-f 標誌意味著 `快速重啟'。這將創建一個咨詢 (advisory) 檔案 /fastboot ，此檔案在系統重啟時會被檢測到。啟動稿本 rc 會檢測是否存在這樣的檔案，如果有，就不會再運行 fsck(1)，因為系統是以正常方式關閉的。這之後，啟動進程會刪除 /fastboot。

-F 標誌意味著 `強制 fsck'。這將創建一個咨詢 (advisory) 檔案 /forcefsck，此檔案在系統重啟時會被檢測到。啟動稿本 rc 會檢測是否存在這個檔案，如果有，就運行 fsck(1) 並且加上一個特殊的 `force' 標誌，以使得即使正常卸載的檔案系統也被檢查。這之後，啟動進程會刪除 /forcefsck。

 -n 標誌導致 shutdown 不調用 init 程式進行關機，而是自己關閉所有運行中的進程。shutdown 接下來會關閉配額 (quota)，記賬 (accounting) 和交換分區，卸載所有檔案系統。

訪問控制 ACCESS CONTROL
如果在 /etc/inittab 檔案中有適當的條目，當按下特殊鍵 CTRL-ALT-DEL 時，shutdown 可以被 init(8) 調用。這意味著可以物理地接觸到終端鍵盤的任何人都可以關閉系統。要避免這種行為，shutdown 可以檢測是否有授權的使用者登入到了虛擬終端之一。如果 shutdown 在調用時帶有 -a 參數 (可以將它添加到 /etc/inittab 中 shutdown 的執行命令之後)，它將檢測是否存在 /etc/shutdown.allow 檔案。接下來它比較檔案中的登入名與虛擬終端的登入使用者列表 (在/var/run/utmp)。只有當授權的使用者之一 或者 root 登入了，它才會繼續。否則，它會把信息

shutdown: no authorized users logged in

寫到 (物理的) 系統終端。/etc/shutdown.allow 的格式是每行一個使用者名。允許出現空行和注釋行 (以 # 開頭)。此檔案當前有最多 32 個使用者的限制。

注意，如果 /etc/shutdown.allow 不存在，-a 參數將被忽略。

檔案 FILES
/fastboot
/etc/inittab
/etc/init.d/halt
/etc/init.d/reboot
/etc/shutdown.allow

注意 NOTES
很多使用者忘記了傳遞 time 參數，結果被 shutdown 產生的錯誤消息所迷惑。time 參數是必須的，90% 的情況下這個參數會是 now。

Init 只能在終端模式捕獲 CTRL-ALT-DEL 並且啟動 shutdown。如果系統正在運行 X window System，X 伺服器處理所有的按鍵。一些 X11 環境使得捕獲 CTRL-ALT-DEL 成為可能，但是這個事件究竟做了什麼依賴於那個環境。

Shutdown 沒有被設計為使用 setuid。/etc/shutdown.allow 不用來找出誰在執行 shutdown ，它*只*用來檢查當前在終端 (之一) 登入的使用者。

作者 AUTHOR
Miquel van Smoorenburg, miquels@cistron.nl

參見 SEE ALSO
fsck(8), init(8), halt(8), poweroff(8), reboot(8)

[中文版維護人]
所羅門 <solomen@email.com.cn>

[中文版最新更新]
Nov 21 2000

《中國linux論壇man手冊頁翻譯計劃》:
http://cmpp.linuxforum.net