Posted on 2007-06-19 17:57
zolly 閱讀(1633)
評論(0) 編輯 收藏
Linux中常用的關機和重新啟動命令有shutdown、halt、reboot以及init,它們都可以達到關機和重新啟動的目的,但是每個命令的內部工作過程是不同的,下面將逐一進行介紹。
1. shutdown
shutdown命令用于安全關閉Linux系統。有些用戶會使用直接斷掉電源的方式來關閉Linux,這是十分危險的。因為Linux與Windows不同,其后臺運行著許多進程,所以強制關機可能會導致進程的數據丟失,使系統處于不穩定的狀態,甚至會損壞硬件設備。
執行shutdown命令時,系統會通知所有登錄的用戶系統將要關閉,并且login指令會被凍結,即新的用戶不能再登錄系統。使用shutdown命令可以直接關閉系統,也可以延遲指定的時間再關閉系統,還可以重新啟動。延遲指定的時間再關閉系統,可以讓用戶有時間儲存當前正在處理的文件和關閉已經打開的程序。
shutdown命令的部分參數如下:
[-t] 指定在多長時間之后關閉系統
[-r] 重啟系統
[-k] 并不真正關機,只是給每個登錄用戶發送警告信號
[-h] 關閉系統(halt)
shutdown命令的工作實質是給init程序發送信號(signal),要求其切換系統的運行級別(Runlevel)。系統的運行級別包括:
0:關閉系統
1:單用戶模式,如果沒有為shutdown命令指定-h或-r參數而直接執行,則默認將切換到此運行級別
2:多用戶模式(不支持NFS)
3:多用戶模式(支持NFS),一般常用此種運行級別
5:多用戶模式(GUI模式)
6:重新啟動系統
2. halt
halt是最簡單的關機命令,其實際上是調用shutdown -h命令。halt執行時,殺死應用進程,文件系統寫操作完成后就會停止內核。
halt命令的部分參數如下:
[-f] 沒有調用shutdown而強制關機或重啟
[-i] 關機或重新啟動之前,關掉所有的網絡接口
[-p] 關機時調用poweroff,此選項為缺省選項
3.reboot
reboot的工作過程與halt類似,其作用是重新啟動,而halt是關機。其參數也與halt類似。
4.init
init是所有進程的祖先,其進程號始終為1。init用于切換系統的運行級別,切換的工作是立即完成的。init 0命令用于立即將系統運行級別切換為0,即關機;init 6命令用于將系統運行級別切換為6,即重新啟動。
例子:
shutdown -h now 立刻關機
halt -p 立刻關機
int 0 立刻關機
shutdown -r now 立刻重新開機
int 6 立刻重新開機
shutdown -k now 'Hey! Go away! now....' 發出警告訊息, 但沒有真的關機
shutdown -t3 -r now 立刻重新開機, 但在警告和刪除processes 之間, 延遲3秒鐘.
shutdown -h 10:42 'Hey! Go away!' 10:42 分關機
shutdown -r +10 'Hey! Go away!' 10 分鐘後關機
shutdown -c 將剛才下的 shutdown 指令取消,必須切換至其它tty, 登入之後, 才能下此一指令.
shutdown now 切換至單人操作模式(不加任何選項時)
注意事項:
時間參數務必要加: 不是用 now, 便是用 hh:mm 或 +mm
now 其實就是 +0 的意思.
不加任何選項的話, 會進入 runlevel 1, 即單人操作模式
轉載: http://jokcn.com/read/66784.html