閱讀207 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Linux中關機命令詳解

在linux下一些常用的關機/重啟命令有shutdown、halt、reboot、及init,它們都可以達到重啟係統的目的,但每個命令的內部工作過程是不同的。

一、常用命令

重啟命令
1、reboot
2、shutdown -r now 立刻重啟(root用戶使用)
3、shutdown -r 10 過10分鍾自動重啟(root用戶使用)
4、shutdown -r 20:35 在時間為20:35時候重啟(root用戶使用)
若通過shutdown命令設置重啟的話,可以用shutdown -c命令取消重啟

 

關機命令
1、halt 立刻關機
2、poweroff 立刻關機
3、shutdown -h now 立刻關機(root用戶使用)
4、shutdown -h 10 10分鍾後自動關機
若通過shutdown命令設置關機的話,可以用shutdown -c命令取消重啟

 

二、命令詳解

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時的信息和等待時間。


原帖地址:https://www.jb51.net/os/RedHat/1334.html


最後更新:2017-04-03 16:48:54

  上一篇:go python獲取央視節目信息
  下一篇:go 句柄