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