1.7 Systemd初始化進(jìn)程

2022-05-26 14:03 更新

Linux操作系統(tǒng)的開(kāi)機(jī)過(guò)程是這樣的,即從BIOS開(kāi)始,然后進(jìn)入Boot Loader,再加載系統(tǒng)內(nèi)核,然后內(nèi)核進(jìn)行初始化,最后啟動(dòng)初始化進(jìn)程。初始化進(jìn)程作為L(zhǎng)inux系統(tǒng)的第一個(gè)進(jìn)程,它需要完成Linux系統(tǒng)中相關(guān)的初始化工作,為用戶提供合適的工作環(huán)境。紅帽RHEL 7系統(tǒng)已經(jīng)替換掉了熟悉的初始化進(jìn)程服務(wù)System V init,正式采用全新的systemd初始化進(jìn)程服務(wù)。如果您之前學(xué)習(xí)的是RHEL 5或RHEL 6系統(tǒng),可能會(huì)不習(xí)慣。systemd初始化進(jìn)程服務(wù)采用了并發(fā)啟動(dòng)機(jī)制,開(kāi)機(jī)速度得到了不小的提升。雖然systemd初始化進(jìn)程服務(wù)具有很多新特性和優(yōu)勢(shì),但目前還是下面4個(gè)槽點(diǎn)。

槽點(diǎn)1:systemd初始化進(jìn)程服務(wù)的開(kāi)發(fā)人員Lennart Poettering就職于紅帽公司,這讓其他系統(tǒng)的粉絲很不爽。

槽點(diǎn)2: systemd初始化進(jìn)程服務(wù)僅僅可在Linux系統(tǒng)下運(yùn)行,“拋棄”了UNIX系統(tǒng)用戶。

槽點(diǎn)3:systemd接管了諸如syslogd、udev、cgroup等服務(wù)的工作,不再甘心只做初始化進(jìn)程服務(wù)。

槽點(diǎn)4:使用systemd初始化進(jìn)程服務(wù)后,RHEL 7系統(tǒng)變化太大,而相關(guān)的參考文檔不多,令用戶著實(shí)為難。

無(wú)論怎樣,RHEL 7系統(tǒng)選擇systemd初始化進(jìn)程服務(wù)已經(jīng)是一個(gè)既定事實(shí),因此也沒(méi)有了“運(yùn)行級(jí)別”這個(gè)概念,Linux系統(tǒng)在啟動(dòng)時(shí)要進(jìn)行大量的初始化工作,比如掛載文件系統(tǒng)和交換分區(qū)、啟動(dòng)各類(lèi)進(jìn)程服務(wù)等,這些都可以看作是一個(gè)一個(gè)的單元(Unit),systemd用目標(biāo)(target)代替了System V init中運(yùn)行級(jí)別的概念,這兩者的區(qū)別如表1-3所示。

表1-3 systemd與System V init的區(qū)別以及作用

System V init運(yùn)行級(jí)別 systemd目標(biāo)名稱(chēng) systemd 目標(biāo)作用
0 poweroff.target 關(guān)機(jī)
1 rescue.target 單用戶模式
2 multi-user.target 多用戶的文本界面
3 multi-user.target 多用戶的文本界面
4 multi-user.target 多用戶的文本界面
5 graphical.target 多用戶的圖形界面
6 reboot.target 重啟
emergency emergency.target 救援模式

如果想要將系統(tǒng)默認(rèn)的運(yùn)行目標(biāo)修改為“多用戶,無(wú)圖形”模式,可直接用ln命令把多用戶模式目標(biāo)文件連接到/etc/systemd/system/目錄:

[root@linuxprobe ~]# ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target

如果有讀者之前學(xué)習(xí)過(guò)RHEL 6系統(tǒng),或者已經(jīng)習(xí)慣使用service、chkconfig等命令來(lái)管理系統(tǒng)服務(wù),那么現(xiàn)在就比較郁悶了,因?yàn)樵赗HEL 7系統(tǒng)中是使用systemctl命令來(lái)管理服務(wù)的。表1-4和表1-5所示RHEL 6系統(tǒng)中System V init命令與RHEL 7系統(tǒng)中systemctl命令的對(duì)比,您可以先大致了解一下,后續(xù)章節(jié)中會(huì)經(jīng)常用到它們。

表1-4 systemctl管理服務(wù)的啟動(dòng)、重啟、停止、重載、查看狀態(tài)等常用命令

老系統(tǒng)命令 新系統(tǒng)命令 作用
service foo start systemctl start httpd 啟動(dòng)服務(wù)
service foo restart systemctl restart httpd 重啟服務(wù)
service foo stop systemctl stop httpd 停止服務(wù)
service foo reload systemctl reload httpd 重新加載配置文件(不終止服務(wù))
service foo status systemctl status httpd 查看服務(wù)狀態(tài)

表1-5 systemctl設(shè)置服務(wù)開(kāi)機(jī)啟動(dòng)、不啟動(dòng)、查看各級(jí)別下服務(wù)啟動(dòng)狀態(tài)等常用命令

老系統(tǒng)命令 新系統(tǒng)命令 作用
chkconfig foo on systemctl enable httpd 開(kāi)機(jī)自動(dòng)啟動(dòng)
chkconfig foo off systemctl disable httpd 開(kāi)機(jī)不自動(dòng)啟動(dòng)
chkconfig foo systemctl is-enabled httpd 查看特定服務(wù)是否為開(kāi)機(jī)自啟動(dòng)
chkconfig --list systemctl list-unit-files --type=httpd 查看各個(gè)級(jí)別下服務(wù)的啟動(dòng)與禁用情況
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)