在linux下關機和重啟系統有shutdown、halt、reboot、init,對於他們來說他們的內部工作過程是不相同的。
1、shutdown命令
使用它可以安全地關閉系統,然而在關閉系統時,會通知所有登錄的用戶系統將要關閉,並且所有的指令都將會被凍結,即所有的新用戶不能再登錄,使用該指令將會出現立即關閉或重啟以及延遲一段時間關閉或重啟。(注意:只有超級用戶才能使用該命令)
命令語法格式:
shutdown [選項] [時間] [警告信息]
該命令中各選項的含義說明:
-k: 只是發出警告信息給用戶
-r: 關閉系統後重啟系統
-h: 關閉系統後不重啟系統
-f: 快速關閉系統,但是是重啟系統時不進行磁盤檢測(在實驗時發現系統進入bios界面,但是不能進行任何操作)
-n: 快速關閉系統,但是不經過init程序關閉
-c: 中斷關閉系統(沒有找到具體怎麼實驗)
2、halt命令
使用halt命令就是調用“shutdown -h”命令來執行關閉系統
命令語法格式;
halt [選項]
-w: 並不是真正的關閉系統,只是寫“wtmp”(/var/log/wtmp)記錄
-d: 不寫“wtmp”
-f: 沒有調用“shutdown”而是強制關閉
-i:關閉系統或重啟系統前,關閉所有的網路uo接口
-p:該選項為缺省選項,關閉系統時調用“power off”
3、reboot命令
reboot命令的工作過程與halt命令相似,但是reboot是引發主機重啟。它所有的參數與“halt”相似。
4、init命令
init命令運用系統的運行級別控制系統。它是所有系統的進程的祖先,它的進程號始終是1,所以發送“TERM”信號給init會終止所有用戶進程和守護進程等,“shutdown”即就是使用這種機制。init 0為關閉系統,init 1為重啟系統。