在linux下有不少關機的命令,在實際應用中它們仍是有一點區別的,對系統也可能產生不一樣的影響,接下來主要是將下它們的具體用法和不一樣。linux
linux下一些比較經常使用的重啓和關機命令有: shutdown 、halt、poweroff、init、reboot安全
shutdown命令(須要root權限,普通用戶能夠經過sudo來得到權限)
網絡
在這幾個命令當中推薦使用shutdown命令,能夠經過添加參數實現系統的關機和重啓。ide
shutdown執行關機,是送信號給init,要求它改變運行級別,以此來關機。關機或重啓其實是運行級別的調整,因此也能夠用init直接調整運行級別來進行關機或重啓。spa
使用shutdown命令關機是安全的:
操作系統
linux系統是一個多用戶的操做系統,而且後臺也會運行多個進程。用戶採用直接關閉電源的方式進行強制關機,是十分危險的,它可能會形成系統數據丟失,甚至損壞硬件設備。blog
而在使用shutdown命令添加時間參數時,會通知每一個已登陸的用戶系統將要關機,能夠適當的給用戶保存當前工做的時間,從而避免進程忽然強制關閉可能形成的危險。進程
shutdown工做過程,系統管理員執行shutdown命令後,會發送信號給init,請求其改變運行級別runlevel。ci
runlevel 0 被用來停機〔halt〕get
runlevel 6 是用來從新激活〔reboot〕系統
對於詳細的runlevel問題,能夠查看/etc/inittab文件,下邊也會列出來。
shutdown 參數說明:
-t 在改變到其它runlevel以前,告訴init多久之後關機。
-r 重啓計算器。
-k 並不真正關機,只是送警告信號給每位登陸者〔login〕。
-h 關機後關閉電源〔halt〕。
-n 不用init而是本身來關機。不鼓勵使用這個選項,並且該選項所產生的後果每每不老是你所預期獲得的。
-c cancel current process取消目前正在執行的關機程序。因此這個選項固然沒有時間參數,可是能夠輸入一個用來解釋的訊息,而這信息將會送到每位使用者。
shutdown -r 2/now 2分鐘後或者馬上重啓系統
shutdown -h 2/now 2分鐘後或者馬上關閉系統
示例:系統管理員執行shutdown -h 2 ,2分鐘後關機,系統會通知登陸用戶asd即將關機以下
如今管理員又想取消關機,可使用-c參數,並說明取消的緣由
用戶asd收到關機取消的信息
2.halt
halt命令至關與shutdown -h now馬上關機,不通知任何用戶。
參數:
-n 在關機前不作將記憶體資料寫回硬盤的動做
-w 並不會真的關機,只是把記錄寫到 /var/log/wtmp 檔案裏
-d 不把記錄寫到 /var/log/wtmp 檔案裏(-n 這個參數包含了 -d) -f : 強迫關機,不呼叫 shutdown 這個指令
-i 在關機以前先把全部網絡相關的裝置先中止
-p 當關機的時候,順便作關閉電源(poweroff)的動做
3.poweroff
poweroff和halt命令都是reboot的軟鏈接,用法同樣
4. init
init是全部進程的祖先,是Linux系統操做中不可缺乏的程序之一。它的進程號始終爲1。
不一樣的運行級定義以下:(能夠參考Red Hat Linux 裏面的/etc/inittab)
0 停機(千萬不能把initdefault 設置爲0 )
1 單用戶模式
2 多用戶,沒有 NFS
3 徹底多用戶模式(標準的運行級)
4 沒有用到
5 X11 (xwindow)
6 從新啓動 (千萬不要把initdefault 設置爲6 )
shutdown 關機就是請求init切換到runlevel 0.