講述你們不知道Halt關機命令
本人很喜歡Linux,在工作中也很喜歡總結關于Halt關機命令的經驗教訓,下面就這個問題來詳細說說Halt關機命令解析。學Linux不像學Windows,不僅僅要掌握操作過程,還要明白其中的原理。初學者在學習Linux時可能會面臨許多困難,比如不具備或需要加強計算機網絡基礎知識。
Halt關機命令可以說是這六個關機命令中的老大。在這個命令中跟上不同的參數,可以實現不同的目的。在這個關機命令中,主要有如下七個參數。
如-n參數,它主要用來防止sync系統調用。Linux Halt關機命令系統中有的時候會了提高效率,會把欲寫入硬盤的資料先寫到 filesystem buffer 中。這個 buffer 是一塊內存中的空間。如果欲寫入硬盤的資料存于這個buffer中,而系統又突然斷電的話,那么資料就會丟失。sync指令會將存于buffer 中的資料強制寫入硬盤中。這個功能就好像數據庫中的高速緩存一樣。
可以先把更改的數據寫入到內存的一個高速緩存中。然后等到某個特定的時候再把它寫入到硬盤中。這種方式可以提高系統性能。不過有的時候管理員需要禁止系統采取sync指令。如系統管理員用fsck命令修補分區之后,為了防止內核用老版本的超級塊覆蓋修補過的超級塊,在關機時就要采用halt –n這個形式來關機。如此的話,在關機的時候不會用老版本的超級塊覆蓋修補過的超級塊。
如果在halt命令中帶了-w參數的話,則并不是真正的重啟或者關機。而只是把這個事件記入到wtmp日志文件中。大家都知道,在系統登錄時,login登錄程序會將一些內容寫入到utmp文件中,同時也將其添寫到wtmp日志文件中。注銷時,init進程將utmp文件中相應的記錄擦除,每個字節都填以0。并將一個新的記錄添寫到wtmp文件中。
在系統重新啟動時,以及更改系統時間和日期的前后,都在wtmp文件中添寫特殊的記錄項。也就是說,wtmp日志文件跟蹤各個登錄和注銷事件,以及其他一些特殊的更改。如果系統管理員并不是要真正的關機,而只是想把某個標記寫入到wtmp日志文件中,則可以利用這個halt –w命令來完成這個需求。另外,-d是跟-w相反的參數。如果在關機時加入這個參數的話,則關機時不會往wtmp日志文件中加入內容。
利用這個命令,有時候還可以實現節電功能。如在筆記本電腦中,節電模式通常有四種。一是Doze模式,當設定時間一到,CPU時鐘變慢,其他設備照常運作。二是Standby模式,當設定時間一到,硬盤和顯示將停止工作,其他設備照常運作。三是Suspend模式,當設定時間一到,除CPU以外的所有設備都將停止工作。四是HDD Power Down模式:當設定時間一到,硬盤停止工作,其他設備照常運作。而在Linux Halt關機命令操作系統下,他支持的時第二種模式,即Standby模式。如果系統管理員運行halt -h命令,則就是高速Linux Halt關機命令操作系統的硬盤處于Standby模式,以節省電。
另外參數-p是這個命令的缺省選項。如果采用這個參數,則這個命令同poweroff命令就完全相同了。其他相關參數大家可以參考系統的幫助文件來了解,這里不多說了。
需要注意的是,使用halt命令的話,有用戶的限制。也就是說,系統在解析命令行參數后,會調用geteuid系統進程判斷當前用戶是否為root用戶。如果是的話進行后續的操作;如果為普通用戶,halt退出,并且會向用戶提示錯誤信息。
可見halt命令是一個很強大的關機命令。但在某種程度上說其又不是一個Halt關機命令。因為它可以起到很多關機以外的作用。作為系統管理員要根據自己的需要,選擇合適的參數。只有如此,才能夠把這個關機命令的作用發揮到極致。
【編輯推薦】