linux 下常用的關機命令有:shutdown 、 halt 、 poweroff 、 init;重啟命令有:reboot 。下面本文就主要介紹一些常用的關機命令以及各種關機命令之間的區別和具體用法。
首先來看一下 linux 下比較常用的一些關機命令
關機命令:
1 、 halt   立刻關機 2 、 poweroff  立刻關機 3 、 shutdown -h now 立刻關機 (root 使用者使用) 4 、 shutdown -h 10 10 分鐘後自動關機 如果是透過 shutdown 命令設定關機的話,可以用 shutdown -c 命令取消重啟
重啟命令:
1 、 reboot 2 、 shutdown -r now 立刻重啟 (root 使用者使用) 3 、 shutdown -r 10 過 10 分鐘自動重啟 (root 使用者使用)  4 、 shutdown -r 20:35 在時間為 20:35 時候重啟 (root 使用者使用) 如果是透過 shutdown 命令設定重啟的話,可以用 shutdown -c 命令取消重啟
下面我們來看看 linux 的這些具體的關機命令之間的區別和各自的用法
1.shutdown 安全的關機命令
對於 shutdown 命令,它是大家都推薦的一個安全的命令,透過引數-h 或-r 的配合來完成關機或重啟。不過在 linux 系統中只有擁有 root 許可權才可以使用這個命令。所以,雖然大家都推薦用這個命令,但是這個命令用起來真的不太方便:想要用這個命令嗎?先去獲得 root 許可權吧。 shutdown 執行關機,是送訊號給 init,要求它改變執行級別,以此來關機。關機或重啟實際上是執行級別的調整,所以我們也可以用 init 直接調整執行級別來進行關機或重啟。使用這個命令時,機器立即關機或重啟。它也需要 root 許可權。
那麼為什麼說 shutdown 命令是安全地將系統關機呢?
實際中有些使用者會使用直接斷掉電源的方式來關閉 linux,這是十分危險的。因為 linux 與 windows 不同,其後臺執行著許多程式,所以強制關機可能會導致程式的資料丟失使系統處於不穩定的狀態。甚至在有的系統中會損壞硬體裝置。而在系統關機前使用 shutdown 命令,系統管理員會通知所有登入的使用者系統將要關閉。並且 login 指令會被凍結,即新的使用者不能再登入。直接關機或者延遲一定的時間才關機都是可能的,還有可能是重啟。這是由所有程式〔process〕都會收到系統所送達的訊號〔signal〕決定的。
shutdown 執行它的工作是送訊號〔signal〕給 init 程式,要求它改變 runlevel 。 runlevel 0 被用來停機〔halt〕,runlevel 6 是用來重新啟用〔reboot〕系統,而 runlevel 1 則是被用來讓系統進入管理工作可以進行的狀態,這是預設的。假定沒有-h 也沒有-r 引數給 shutdown 。要想了解在停機〔halt〕或者重新開機〔reboot〕過程中做了哪些動作?你可以在這個檔案/etc/inittab 裡看到這些 runlevels 相關的資料。
shutdown 引數說明:
[-t] 在改變到其它 runlevel 之前,告訴 init 多久以後關機。 [-r] 重啟計算器。 [-k] 並不真正關機,只是送警告訊號給每位登入者〔login〕。 [-h] 關機後關閉電源〔halt〕。 [-n] 不用 init 而是自己來關機。不鼓勵使用這個選項,而且該選項所產生的後果往往不總是你所預期得到的。 [-c] cancel current process 取消目前正在執行的關機程式。所以這個選項當然沒有時間引數,但是可以輸入一個用來解釋的訊息,而這資訊將會送到每位使用者。 [-f] 在重啟計算器〔reboot〕時忽略 fsck 。   [-F] 在重啟計算器〔reboot〕時強迫 fsck 。 [-time] 設定關機〔shutdown〕前的時間。       2.halt 最簡單的關機命令
用 halt 命令來關機時,實際呼叫的是 shutdown -h 。 halt 執行時將殺死應用程式,執行 sync 系統呼叫檔案系統寫操作完成後就會停止核心。
halt 引數說明:
[-n] 防止 sync 系統呼叫,它用在用 fsck 修補根分割槽之後,以阻止核心用老版本的超級塊〔superblock〕覆蓋修補過的超級塊。 [-w] 並不是真正的重啟或關機,只是寫 wtmp〔/var/log/wtmp〕紀錄。 [-d] 不寫 wtmp 紀錄〔已包含在選項 [-n] 中〕。 [-f] 沒有呼叫 shutdown 而強制關機或重啟。 [-i] 關機〔或重啟〕前關掉所有的網際網路介面。 [-p] 該選項為預設選項。就是關機時呼叫 poweroff 。
3.poweroff 常用的關機命令
對於 poweroff,網上說它是 halt 命令的連結,基本用法和 halt 差不多,這裡就不多說了。
4.init
init 是所有程式的祖先,他是 Linux 系統操作中不可缺少的程式之一。它的程式號始終為 1,所以傳送 TERM 訊號給 init 會終止所有的使用者程式,守護程式等。 shutdown 就是使用這種機制。 init 定義了 8 個執行級別 (runlevel),init 0 為關機,init 1 為重啟。
5.reboot 重啟命令
reboot 的工作過程差不多跟 halt 一樣。不過它是引發 WordPress 主機重啟,而 halt 是關機。它的引數與 halt 相差不多。