首頁 >php教程 >PHP开发 >Linux多個關機指令詳解

Linux多個關機指令詳解

高洛峰
高洛峰原創
2016-12-17 16:48:541408瀏覽

1、shutdown

shutdown命令安全地將系統關機。 有些用戶會使用直接斷掉電源的方式來關閉linux,這是十分危險的。因為linux與windows不同,其後台運行許多進程,所以強制關機可能會導致進程的資料遺失,使系統處於不穩定的狀態,甚至在有的系統中會損壞硬體設備。

而在系統關機前使用shutdown指令,系統管理員會通知所有登入的使用者係統將會關閉。

且login指令會被凍結,即新的使用者不能再登入。直接關機或延遲一定的時間才關機都是可能的,還可能重新啟動。這是由所有流程〔process〕都會收到系統所送達的訊號〔signal〕決定的。這讓像vi之類的程式有時間儲存目前正在編輯的文檔,而像處理郵件〔mail〕和新聞〔news〕的程式則可以正常地離開等等。

shutdown執行它的工作是送信號〔signal〕給init程序,要求它改變runlevel。

Runlevel 0被用來停機〔halt〕,runlevel 6是用來重新激活〔reboot〕系統,而runlevel 1則是被用來讓系統進入管理工作可以進行的狀態;這是預設的,假定沒有-h也沒有-r參數給shutdown。想了解在停機〔halt〕或重新開機〔reboot〕過程中做了哪些動作,你可以在這個文件/etc/inittab裡看到這些runlevels相關的資料。

shutdown 參數說明:

[-t] 在改變到其它runlevel之前,告訴init多久以後關機。

[-r] 重啟計算器。

[-k] 不真正關機,只是送警告訊號給每位登入者〔login〕。

[-h] 關機後關閉電源〔halt〕。

[-n] 不用init,而是自己來關機。不鼓勵使用這個選項,而且這個選項所產生的後果往往不總是你所預期得到的。

[-c] cancel current process取消目前正在執行的關機程式。所以這個選項當然沒有時間參數,但可以輸入一個用來解釋的訊息,而這資訊將會送到每位使用者。

[-f] 在重啟計算器〔reboot〕時忽略fsck。

[-F] 在重啟計算器〔reboot〕時強迫fsck。

[-time] 設定關機〔shutdown〕前的時間。

2、halt 最簡單的關機指令

其實halt就是呼叫shutdown -h。 halt執行時,殺死應用程式,執行sync系統調用,檔案系統寫入操作完成後就會停止核心。

參數說明:

[-n] 防止sync系統調用,它用在用fsck修補根分區之後,以阻止核心用舊版本的超級塊〔superblock〕覆蓋修補過的超級塊。

[-w] 並不是真正的重啟或關機,只是寫wtmp〔/var/log/wtmp〕紀錄。

[-d] 不寫wtmp紀錄〔已包含在選項[-n]中〕。

[-f] 沒有呼叫shutdown而強制關機或重新啟動。

[-i] 關機〔或重啟〕前,關掉所有的網路介面。

[-p] 此選項為缺省選項。就是關機時調用poweroff。

3、reboot

reboot的工作過程差不多跟halt一樣,不過它是引發主機重啟,而halt是關機。它的參數與halt相差不多。

4、init

init是所有進程的祖先,它的進程號總是1,所以發送TERM訊號給init會終止所有的使用者進程、守護程式等。 shutdown 就是使用這種機制。 init定義了8個運作等級(runlevel),init 0為關機,init 1為重啟。關於init可以長篇大論,這裡就不再敘述。另外還有telinit指令可以改變init的運作級別,例如,telinit -iS可讓系統進入單一使用者模式,且無法獲得使用shutdown時的資訊和等待時間。



更多Linux多個關機指令詳解相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn