在現(xiàn)代Linux系統(tǒng)中,systemd是一種最常用的系統(tǒng)與服務(wù)管理器。
systemd的主要作用是在系統(tǒng)啟動(dòng)時(shí)初始化并管理系統(tǒng)進(jìn)程、服務(wù)、硬件、網(wǎng)絡(luò)等系統(tǒng)資源,并提供服務(wù)依賴(lài)管理、日志管理等功能。
同時(shí),systemd還提供了一些工具,幫助用戶(hù)更方便地管理系統(tǒng)服務(wù)和其他系統(tǒng)資源。
在Linux系統(tǒng)中,systemd 的存在可以通過(guò)檢查1號(hào)進(jìn)程來(lái)確認(rèn):
首先檢查系統(tǒng)中的1號(hào)進(jìn)程,會(huì)發(fā)現(xiàn)它是系統(tǒng)的init進(jìn)程,它負(fù)責(zé)初始化系統(tǒng)并啟動(dòng)其他進(jìn)程。
g@GitExp:~$ ps aux | grep init
root 1 0.0 0.1 225472 9344 ? Ss 12月23 0:07 /sbin/init splash
在Linux發(fā)展歷程中,不同的Linux發(fā)行版本使用的初始化系統(tǒng)有差別,但是這些初始化程序都是作為1號(hào)進(jìn)程來(lái)運(yùn)行,因此我們可以詳細(xì)檢查我們的1號(hào)進(jìn)程是否由systemd提供。
檢查init的連接:
g@GitExp:~$ ll /sbin/init
lrwxrwxrwx 1 root root 20 3月 2 2023 /sbin/init -> /lib/systemd/systemd*
在現(xiàn)代Linux 系統(tǒng)中,systemd 作為系統(tǒng)的初始化系統(tǒng),通常會(huì)取代傳統(tǒng)的 init。但是,系統(tǒng)的 init 進(jìn)程有時(shí)仍然會(huì)以 /sbin/init 作為啟動(dòng)的命令出現(xiàn),并軟連接指向?qū)嶋H地址。
也可以直接檢查:
g@GitExp:~$ ps -p 1
PID TTY TIME CMD
1 ? 00:00:07 systemd
systemd具有許多現(xiàn)代化的特點(diǎn)和優(yōu)勢(shì),使其成為目前大多數(shù)Linux系統(tǒng)中首選的管理器。
(1)Unit 機(jī)制:systemd使用unit配置文件來(lái)管理服務(wù)、掛載點(diǎn)、設(shè)備等系統(tǒng)資源,它是systemd其他功能的基礎(chǔ)機(jī)制。
(2)服務(wù)依賴(lài)管理:在unit機(jī)制下,通過(guò)服務(wù)依賴(lài),可以精確控制服務(wù)的啟動(dòng)順序。
(3)并行啟動(dòng)服務(wù):systemd支持并行啟動(dòng)多個(gè)服務(wù),而不是像傳統(tǒng)init系統(tǒng)那樣逐個(gè)依次啟動(dòng),能夠顯著減少系統(tǒng)啟動(dòng)的時(shí)間。
(4)進(jìn)程監(jiān)控與自動(dòng)重啟:systemd支持監(jiān)控進(jìn)程的運(yùn)行狀態(tài),并能夠在服務(wù)崩潰時(shí)自動(dòng)重啟服務(wù)。這為系統(tǒng)提供了更高的穩(wěn)定性。
(5)資源控制:systemd可以利用 Linux 內(nèi)核的cgroups功能,控制系統(tǒng)資源的使用,如 CPU、內(nèi)存、磁盤(pán) I/O 等??梢愿玫胤峙湎到y(tǒng)資源,避免某個(gè)進(jìn)程占用過(guò)多資源導(dǎo)致系統(tǒng)不穩(wěn)定。
(6)日志管理:systemd包含了一個(gè)內(nèi)置的日志系統(tǒng)journald,用于收集系統(tǒng)和服務(wù)的日志。通過(guò)journalctl命令可以方便地查看和管理日志信息,并且支持日志過(guò)濾和搜索。
(7)統(tǒng)一管理接口:systemd提供了一個(gè)統(tǒng)一的命令行工具systemctl,用于管理系統(tǒng)服務(wù)、啟動(dòng)、停止、重啟等操作。
(8)目標(biāo)機(jī)制:systemd使用目標(biāo)(target)來(lái)管理系統(tǒng)狀態(tài)。例如,multi-user.target 表示多用戶(hù)模式,相當(dāng)于傳統(tǒng)的運(yùn)行級(jí)別 3。通過(guò)目標(biāo)機(jī)制,管理員可以靈活控制系統(tǒng)的運(yùn)行狀態(tài)。
探討了systemd的特點(diǎn)后,我們就能夠大概了解,為什么systemd可以在眾多Linux的初始化程序中脫穎而出。
除了systemd,還有一些常用的初始化程序,例如SysV Init、Upstart等。
SysV Init: SysV Init最早出現(xiàn)在Unix系統(tǒng)中,后來(lái)也成為了初代Linux系統(tǒng)的標(biāo)準(zhǔn)初始化系統(tǒng)。但是因?yàn)榇袉?dòng)速度慢、發(fā)雜的腳本化管理、沒(méi)有依賴(lài)機(jī)制導(dǎo)致被慢慢主流淘汰。
Upstart:Upstart在SysV Init的基礎(chǔ)上引入了事件驅(qū)動(dòng)模型、并支持并發(fā)啟動(dòng),出現(xiàn)后迅速大面積替代了 SysV Init,但是后來(lái)因?yàn)榕csystemd競(jìng)爭(zhēng)失敗并且缺少后續(xù)維護(hù),慢慢也被主流淘汰。
systemd: sysmted因支持并行啟動(dòng)和依賴(lài)管理,集成日志和資源控制等功能,并提供了統(tǒng)一管理的工具,讓它成為了目前Linux系統(tǒng)的主流管理器,并大面積使用至今。
(1)學(xué)習(xí)困難:由于 systemd 功能復(fù)雜,使用者可能需要更多的時(shí)間來(lái)學(xué)習(xí)如何配置和管理 systemd 服務(wù)。
(2)過(guò)于復(fù)雜的設(shè)計(jì):有些用戶(hù)認(rèn)為systemd的設(shè)計(jì)過(guò)于龐大和復(fù)雜,尤其是其“一體化”設(shè)計(jì),可能導(dǎo)致不必要的功能和增加了系統(tǒng)的復(fù)雜性。
(3)與傳統(tǒng)系統(tǒng)兼容不完美:雖然目前大部分Linux發(fā)行版本都使用systemd,并且systemd一直在致力于提升兼容性問(wèn)題,但因?yàn)閺?fù)雜的涉及,可能會(huì)導(dǎo)致在Linux中移植較老的服務(wù)或傳統(tǒng)init服務(wù)到systemd時(shí)候會(huì)遇到很多兼容問(wèn)題。
所以systemd能夠脫穎而出是因?yàn)樗藘?yōu)秀的初始化機(jī)制,還提供了其他初始化系統(tǒng)不具備的功能和工具,并且隨著時(shí)間的推移,systemd 的優(yōu)勢(shì)將更加顯著。但是對(duì)用戶(hù)來(lái)說(shuō),理解其復(fù)雜性以及它本身潛在的劣勢(shì)依然還是一個(gè)挑戰(zhàn)。
今天的分享就到這里啦,EBYTE每一天都致力于更好的助力物聯(lián)化、智能化、自動(dòng)化的發(fā)展,提升資源利用率,更多通信技術(shù)資料,感興趣的小伙伴可以登錄我們的億佰特官網(wǎng)進(jìn)行了解,也可以直接撥打400電話咨詢(xún)技術(shù)專(zhuān)員!
相關(guān)閱讀:
1、【服務(wù)器】Nginx Proxy Manager申請(qǐng)cloudflare泛域名教程
2、Dell服務(wù)器PowerEdge R730xd部署ESXI服務(wù)器部署教程
7 X 24 銷(xiāo)售服務(wù)熱線
4000-330-990深圳辦事處柯經(jīng)理:18218726658 南京辦事處葛經(jīng)理:17626012283
成都總部銷(xiāo)售經(jīng)理:
秦 科(無(wú)線模塊):18884314654 馮子恒(無(wú)線模塊):18884314734
蔡友銀(無(wú)線模塊):13882211021 葛宇龍(通信設(shè)備):19138800613
胡兵(外貿(mào)銷(xiāo)售經(jīng)理):18584911141、 [email protected]
業(yè)務(wù)郵箱:[email protected] 全國(guó)銷(xiāo)售投訴電話:19934352316
地址:四川省成都市高新西區(qū)西區(qū)大道199號(hào)B5棟(前臺(tái)座機(jī):028-61543675)
?? 成都億佰特電子科技有限公司【版權(quán)所有】 蜀ICP備13019384號(hào)