Linux系統提供了多個命令,可以對操作系統進行關機、重啓等操作,那不同命令之間有什麼區別或相同之處,今天我們來對shutdown、reboot、halt、init、poweroff進行一一對比。
1、shutdown:只能由超級用戶執行
Linux系統man註釋中標註爲“shutdown - bring the system down”,促使系統關機。它可以安全的關閉系統,還可在關閉系統之前給所有已登錄用戶提示警告信息,並鎖定系統login不允許再登錄。直接執行shutdown命令,在停止系統運行之前,會把系統即將關閉的信息告訴已登錄用戶,並留給1分鐘(值可以更改)時間來完成剩餘工作,1分鐘後系統調用killall命令殺死系統中運行的進程,並用sync命令將內存中的`緩衝數據保存到硬盤上,再卸載已安裝的文件系統,最後使用halt命令停止系統。他的另一個特點是可以指定系統關機時間或指定從現在開始一段時間後關機。
shutdown命令語法格式爲:
shutdown [參數] [時間] [警告信息]
常用參數如下:
-k:並不真正關機而只是發出警告信息給所有用戶
-r:關機後立即重新啓動
-h:關機後不重新啓動
-f:快速關機且重啓動時跳過fsck(fsck爲文件系統檢查)
-n:快速關機不經過init:程序
-c:取消一個已經運行的shutdown
使用樣例:
//設置系統15分鐘後關機並重啓
# shutdown -h +10
//馬上關閉系統並重啓
# shutdown -r now
2、halt:
halt(stop the system)是簡單的關機命令,執行命令時直接殺死應用進程,﹐執行sync同步緩存數據,待系統調用文件系統寫操作完成後就會停止內核。
3、reboot、init、poweroff
reboot、init、poweroff三個命令的功能類似,且三個命令的使用參數也幾乎完全一致。
共用參數:
-w:並不是真正的重啓或關機﹐只是寫wtmp〔/var/log/wtmp〕紀錄
-d:不寫wtmp紀錄
-f:不調用shutdown而強制關機或重啓
-i:關機〔或重啓〕前﹐關掉所有的網絡接口
不同之處爲:
halt命令爲關機;
reboot命令執行的是重啓。且重啓系統時是刪除所有系統進程而不是停止,reboot命令可以快速關閉系統,但可能導致系統數據異常。
poweroff命令在關閉系統之後,還會通知,切斷電源供電。
4、init
init是系統啓動的第一個進程,ID號永遠爲1。init命令用於切換系統運行級別。
使用方法爲:init X
系統運行級別及代表涵義如下:
0:停機
1:單用戶形式
2:多用戶形式
3:完全多用戶
5:圖形化形式(X-Windows)
4:安全模式
6:重啓
注:使用runlevel命令可以查看系統當前運行級別。系統啓動後默認運行級別在配置文件/etc/inittab中指定。
友情提示:以上所有命令請謹慎使用,千萬不可在正在使用的系統上隨意執行。