我們在平時的編程學習中,或多或少,或早或晚,都要接觸到linux服務器;
但是很多小白對linux服務器的啟動與初始化過程并不是很清楚;
通過本文知識,讓我們花5分鐘時間徹底搞懂它,相信聰明的你,看完一定會有收獲!
【正文開始】
linux服務器的啟動,共分為 5 個階段:
1、內核引導:
即讀入 /boot 目錄內核文件
2、運行init進程:
init 進程是系統所有進程的起點,沒有這個進程系統中任何進程都不會啟動。
Linux中有很多"守護進程"(daemon,類似于windows中的"service服務)需要開機啟動。init進程負責去運行這些開機啟動程序
3、系統初始化:
不同的場合需要啟動不同的守護進程(比如:用作服務器時需要啟動Apache,用作桌面就不需要)
Linux允許為不同的場合分配不同的開機啟動程序,這就是"運行級別"。
Linux系統共有 7 個運行級別,分別是:
級別0:系統停機狀態,系統默認運行級別不能設為0,否則不能正常啟動 (poweroff.target)
級別1:單用戶工作狀態,root權限,用于系統維護,禁止遠程登陸(rescue.target)
級別2:多用戶狀態(沒有NFS) (multi-user.target)
級別3:完全的多用戶狀態(有NFS),登陸后進入控制臺命令行模式(推薦級別)(multi-user.target)
級別4:系統未使用,保留(multi-user.target)
級別5:X11控制臺,登陸后進入圖形GUI模式(graphical.target)
級別6:系統正常關閉并重啟,默認運行級別不能設為6,否則不能正常啟動(reboot.target)
4個常用命令:
查看默認級別:systemctl get-default (服務器一般是多用戶級別: multi-user.target)
修改默認級別: systemctl set-default rescue.target
查看當前級別:runlevel
修改當前級別:init 1 (1表示進入單用戶緊急修復模式)
4、建立終端
初始化完成以后,init進程接下來會打開6個終端,以便用戶登錄系統。
mingetty程序能打開終端、設置模式。
同時它會顯示一個文本登錄界面,這個界面就是我們經常看到的登錄界面,在這個登錄界面中會提示用戶輸入用戶名,而輸入的用戶名將作為參數傳給login程序來驗證用戶的身份。
小知識:
如果你安裝了圖形界面,默認情況下是進入圖形界面的,此時你就可以按Ctrl + Alt + F1 ~ F6來進入其中一個終端命令界面(Ctrl + Alt + F7則是返回圖形界面)。
5、用戶登錄系統
一般來說,用戶的登錄方式有2種:
(1)圖形界面登錄:
對于運行級別為5的用戶登錄成功后可進入 KDE、Gnome 等窗口管理器。
(2)命令行登錄
login程序會對用戶名進行分析:如果用戶名不是 root,且存在 /etc/nologin 文件,login 將輸出 nologin 文件的內容,然后退出(這通常用來系統維護時防止非root用戶登錄)
只有在 /etc/securetty 文件中登記了的終端才允許 root 用戶登錄,如果不存在這個文件,則 root 用戶可以在任何終端上登錄。
/etc/usertty文件用于對用戶作出附加訪問限制,如果不存在這個文件,則沒有其他限制。
最后,順便介紹一下 Linux 關機與重啟:
linux大多用在服務器上,很少遇到關機操作。除非特殊情況下,不得已才會關機。
正確的關機流程為:sync > shutdown > reboot > halt
幾個常用命令
shutdown –h now :立馬關機 (等同于halt 或 poweroff 或 init 0)
shutdown –h +10 : 10分鐘后關機
shutdown –h 20:25: 在今天20:25關機
shutdown –r now: 立即重啟(等同于 reboot)
shutdown –r +10: 10分鐘后重啟
注意:不管是重啟系統還是關閉系統,務必要先運行 sync 命令,把內存中的數據寫到磁盤中,防止數據丟失。
【全文完】