【转载】Linux关机命令详解
2019獨角獸企業重金招聘Python工程師標準>>>
? ? ? 在linux下一些常用的關機/重啟命令有shutdown、halt、reboot、及init,它們都可以達到重啟系統的目的,但每個命令的內部工作過程是不同的,通過本文的介紹,希望你可以更加靈活的運用各種關機命令。
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可以長篇大論﹐這里就不再敘述。(補充,可以使用 init 0 優雅關機,使用 init 6 優雅重啟)
另外還有telinit命令可以改變init的運行級別﹐比如﹐telinit?-iS可使系統進入單用戶模式﹐?并且得不到使用shutdown時的信息和等待時間。
轉載于:https://my.oschina.net/moooofly/blog/343385
總結
以上是生活随笔為你收集整理的【转载】Linux关机命令详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AI 新算法检测到 8 个神秘无线电信号
- 下一篇: 腾讯开放世界游戏《黎明觉醒:生机》配置要