今天小編給大家分享一下Linux系統(tǒng)啟動與服務管理的方法是什么的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
創(chuàng)新互聯(lián)建站是一家專注網(wǎng)站建設、網(wǎng)絡營銷策劃、小程序開發(fā)、電子商務建設、網(wǎng)絡推廣、移動互聯(lián)開發(fā)、研究、服務為一體的技術型公司。公司成立十余年以來,已經為上1000+茶樓設計各業(yè)的企業(yè)公司提供互聯(lián)網(wǎng)服務?,F(xiàn)在,服務的上1000+客戶與我們一路同行,見證我們的成長;未來,我們一起分享成功的喜悅。
??服務器在正常的運行過程中,一般很少重啟,但是如果發(fā)生了未知故障或者遇到了人為誤操作的情況,可能就會出現(xiàn)啟動異常的狀況。雖然 Linux 系統(tǒng)啟動流程是比較底層的知識了,但是為了加深對 Linux 系統(tǒng)的理解,總結了這篇文章。
??服務器主機開機以后,將根據(jù)主板 BIOS 中的設置對 CPU、內存、顯卡、硬盤等設備進行初步檢測,檢測成功后根據(jù)預設的啟動順序移交系統(tǒng)控制權,大多時候會移交給本機硬盤。
??當從本機硬盤中啟動系統(tǒng)時,首先根據(jù)硬盤第一個扇區(qū)中 MBR (主引導記錄)的設置,將系統(tǒng)控制權傳遞給包含操作系統(tǒng)引導文件的分區(qū);或者直接根據(jù) MBR 記錄中的引導信息調用啟動菜單(如GRUB) 。
??對于Linux操作系統(tǒng)來說,GRUB (統(tǒng)一啟動加載器)是使用最為廣泛的多系統(tǒng)引導器程序。系統(tǒng)控制權傳遞給 GRUB 以后,將會顯示啟動菜單給用戶選擇,并根據(jù)所選項(或采用默認值)加載 Linux 內核文件,然后將系統(tǒng)控制權轉交給內核。需要注意的是,Centos7 采用的是 GRUB2 啟動引導器。
??Linux 內核是一個預先編譯好的特殊二進制文件,介于各種硬件資源與系統(tǒng)程序之間, 負責資源分配與調度。內核接過系統(tǒng)控制權以后,將完全掌控整個 Linux 操作系統(tǒng)的運行過程。
在CentoS 系統(tǒng)中,默認的內核文件位于"/boot/vmlinuz-3.10.0-514.el7.x86_64"。
??為了完成進一步的系統(tǒng)引導過程,Linux 內核首先將系統(tǒng)中的 “/sbin/init” 程序加載到內存中運行,init 進程負責完成一系列的系統(tǒng)初始化過程,最后等待用戶進行登錄。
檢測出第一個能夠引導系統(tǒng)的設備比如硬盤或光驅
運行放在 MBR 扇區(qū)里的啟動 GRUB 引導程序
GRUB 引導程序通過讀取 GRUB 配置文件 /boot/grub2/grub.cfg 來獲取內核和鏡像文件系統(tǒng)的設置以及路徑位置
把內核和鏡像文件系統(tǒng)加載到內存中
加載硬件驅動程序,內核把 init 進程加載到內存中運行
由 Linux 內核加載運行 /sbin/init 程序
init 進程是系統(tǒng)中第一個進程
init 進程的 PID 號永遠為 1
[root@c7-1 ~]#ll /sbin/initlrwxrwxrwx. 1 root root 22 8月 13 21:44 /sbin/init -> ../lib/systemd/systemd
systemd 是 Linux 操作系統(tǒng)的一種 init 軟件
CentOS7 中采用全新的 systemd 啟動方式,取代傳統(tǒng)的 SysVinit
CentOS7 中運行的第一個 init 進程是 /lib/systemd/systemd
[root@c7-1 ~]#ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 8月15 ? 00:00:31 /usr/lib/systemd/systemd --switched-root --system --deserialize 22 root 2 0 0 8月15 ? 00:00:00 [kthreadd] root 4 2 0 8月15 ? 00:00:00 [kworker/0:0H] root 6 2 0 8月15 ? 00:00:00 [ksoftirqd/0] root 7 2 0 8月15 ? 00:00:00 [migration/0] ......
單元類型 | 擴展名 | 說明 |
---|---|---|
Service | .service | 描述一個系統(tǒng)服務 |
Socket | .socket | 描述一個進程間通信的套接字 |
Device | .device | 描述一個內核識別的設備文件 |
Mount | .mount | 描述一個文件系統(tǒng)的掛載點 |
Automount | .automount | 描述一個文件系統(tǒng)的自動掛載點 |
Swap | .swap | 描述一個內存交換設備或交換文件 |
Path | .path | 描述一個文件系統(tǒng)中文件或目錄 |
Timer | .timer | 描述一個定時器(用于實現(xiàn)類似 cron 的調度任務) |
Snapshot | .snapshot | 用于保存一個 systemd 的狀態(tài) |
Scope | .scope | 使用 systemd 的總線接口以編程的方式創(chuàng)建外部進程 |
Slice | .slice | 描述居于 Cgroup 的一組通過層次組織的管理系統(tǒng)進程 |
Target | .target | 描述一組 systemd 的單元 |
運行級別 | systemd 的 target | 說明 |
---|---|---|
0 | target | 關機狀態(tài),使用該級別時將會關閉主機 |
1 | rescue.target | 單用戶模式,不需要密碼驗證即可登錄系統(tǒng),多用于系統(tǒng)維護 |
2 | multi-user.target | 用戶定義/域特定運行級別。默認等同于3 |
3 | multi-user.target | 字符界面的完整多用戶模式,大多數(shù)服務器主機運行在此級別 |
4 | multi-user.target | 用戶定義/域特定運行級別。默認等同于3 |
5 | graphical.target | 圖形界面的多用戶模式,提供了圖形桌面操作環(huán)境 |
6 | reboot.target | 重新啟動,使用該級別時將會重啟主機 |
格式:
systemctl COMMAND name.service #.service 也可以省略
Sysvinit 和 Systemd 命令對比
Sysvinit命令 | Systemd命令 | 含義 |
---|---|---|
service name start | systemctl start name | 啟動服務 |
service name stop | systemctl stop name | 關閉服務 |
service name restart | systemctl restart name | 重啟服務不管當前是啟動還是關閉狀態(tài) |
service name reload | systemctl reload name | 重新載入服務配置信息而不中斷服務 |
service name condrestart | systemctl condrestart name | 運行狀態(tài)的服務可以重啟,不在運行狀態(tài)無法重啟 |
service name status | systemctl status name | 查看服務的運行狀態(tài) |
chkconfig name on | systemctl enable name | 設置服務為開機自啟動 |
chkconfig name off | systemctl disable name | 設置服務為開機關閉 |
chkconfig name | systemctl is-enabled name | 檢查服務是否開機自啟 |
chkconfig name --add | systemctl daemon-reload | 創(chuàng)建一個新服務文件,或者變更配置的時候使用 |
示例:
#啟動 httpd 服務 systemctl start httpd #停止 httpd 服務 systemctl stop httpd #重啟 httpd 服務 systemctl restart httpd #查看 httpd 服務狀態(tài) systemctl status httpd #禁止自動和手動啟動服務(可以關閉運行的服務) systemctl mask name.service #取消禁止 systemctl unmask name.service #查看某服務當前是否正在運行 systemctl is-active name.service #查看所有服務 systemctl list-unit-files --type=service #查看所有已經激活的服務 systemctl list-unit-files --type=service | grep enabled #列出啟動失敗的服務 systemctl --failed --type=service 或 systemctl list-units --state failed 或 systemctl list-unit-files --state=failed #開啟 httpd 服務并設置開機自啟 systemctl enable --now httpd.service #關閉 httpd 服務并關閉開機自啟 systemctl disable --now httpd.service #查看服務的依賴關系 systemctl list-dependencies name.service #殺掉進程 systemctl kill unitname
以上就是“Linux系統(tǒng)啟動與服務管理的方法是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)站名稱:Linux系統(tǒng)啟動與服務管理的方法是什么
分享地址:http://jinyejixie.com/article48/pgichp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設、微信小程序、用戶體驗、建站公司、網(wǎng)站設計公司、動態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)