日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
CentOS7進(jìn)程管理systemd詳解

概述:

系統(tǒng)啟動過程中,當(dāng)內(nèi)核啟動完成,后加載根文件系統(tǒng),后就緒的一些用戶空間的服務(wù)的管理工作,就交由init進(jìn)行啟動和管理,在centos6之前的init的管理方式都類似,相關(guān)的內(nèi)容我們在之前的文章中也做出過介紹。在CentOS7上,init變成了systemd,其管理方式也發(fā)生了重大的變化,本章就跟大家歐一起探討一些關(guān)于CentOS7上的systemd的新特性的內(nèi)容。具體分為一下幾個方面:

成都創(chuàng)新互聯(lián)公司專注于湖口企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站開發(fā),購物商城網(wǎng)站建設(shè)。湖口網(wǎng)站建設(shè)公司,為湖口等地區(qū)提供建站服務(wù)。全流程按需開發(fā),專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)

1、systemd新特性簡介

2、systemd如何管理系統(tǒng)系統(tǒng)上的各服務(wù)

3、systemd管理各個服務(wù)時,所依賴的unit文件的組織格式

4、systemd相關(guān)操作的實際效果展示

第一章    systemd新特性簡介

1、init程序的功能介紹

init程序是當(dāng)系統(tǒng)內(nèi)核啟動后,加載完根文件系統(tǒng),然后就由內(nèi)核加載了init程序,并將后續(xù)用戶空間其他程序的啟動和管理工作交由init程序進(jìn)行管理,除非有需要進(jìn)行內(nèi)核特權(quán)級別操作時,內(nèi)核才會被用戶空間的各個系統(tǒng)調(diào)用,完成一些內(nèi)核級別的操作

在CentOS5、6上,init初始化用戶空間的啟動流程為:/sbin/init程序主要是通過讀取/etc/inittab文件來完成一定的任務(wù),完成的任務(wù)有:

定義默認(rèn)運行級別(/etc/inittab)

運行系統(tǒng)初始化腳本(/etc/rc.d/rc.sysinit)完成系統(tǒng)初始化

關(guān)閉指定運行級別下的各服務(wù),啟動指定級別下需要開啟的各服務(wù)

啟動mingetty虛擬終端,調(diào)用login程序,顯示登錄提示符,讓終端進(jìn)行登錄

init程序的類型:

centos5:SysV init

其配置文件:/etc/inittab

centos6: Upstart

其配置文件:/etc/inittab和/etc/init/*.conf

centos7:Systemd

其配置文件:/usr/lib/systemd/system/、/etc/systemd/system/

2、systemd的新特性:

<1>系統(tǒng)引導(dǎo)時實現(xiàn)服務(wù)并行啟動(前提是并行啟動的服務(wù)之間沒有依賴關(guān)系)

<2>按需激活進(jìn)程(進(jìn)程在沒有訪問時是不會被啟動的,但是服務(wù)仍然處于半活動狀態(tài),只是服務(wù)沒有啟動)

<3>系統(tǒng)狀態(tài)快照,自我保存某一時刻進(jìn)程用戶空間狀態(tài)的快照,可以回滾到某一個時刻

<4>基于依賴關(guān)系定義的服務(wù)控制邏輯

 

3、systemd的關(guān)鍵特性:

<1>基于socket的激活機(jī)制:socket與程序分離,可以在系統(tǒng)啟動時,先把某個服務(wù)的socket分配給該服務(wù),但該服務(wù)可以事先不用啟動

<2>基于bus的激活機(jī)制:基于總線的激活

<3>基于device的激活機(jī)制:當(dāng)某個設(shè)備接入時,systemd可以自動的去激活諸如device unit、mount unit、automount unit對設(shè)備進(jìn)行識別和掛載等

<4>基于path的激活機(jī)制:系統(tǒng)可以自動監(jiān)控某個目錄存不存在,文件存不存在,并根據(jù)此判斷,來激活別的服務(wù)、進(jìn)程等

<5>系統(tǒng)快照:能夠保存各unit的當(dāng)前狀態(tài)信息于持久存儲設(shè)備中;從而實現(xiàn)了回滾機(jī)制

<6>能向后兼容sysv init腳本:在centos5、6系統(tǒng)上/etc/init.d/目錄下的服務(wù)腳本,systemd也能夠?qū)ζ溥M(jìn)行管理

不兼容的地方:

1):systemctl的命令是固定不變的,也就是說像在centos6上的各類服務(wù)腳本的start、stop這類我們可以通過修改服務(wù)腳本,去實現(xiàn)service 命令使用的時候后面的參數(shù)的變化。但是systemctl控制的時候,則無法通過修改服務(wù)腳本去實現(xiàn)systemctl后面參數(shù)的變化

2):不是由systemd啟動的服務(wù),systemctl無法與之通信,也就是無法對其進(jìn)行控制。在centos6上,利用服務(wù)腳本自身啟動時,利用service依然能夠?qū)ζ溥M(jìn)行管理,但是centos7上,如果服務(wù)腳本自身啟動,而不是通過systemctl進(jìn)行啟動,則systemctl就無法對服務(wù)做出管理

4、systemd的核心概念:unit

unit由其相關(guān)的配置文件進(jìn)行標(biāo)識、識別和配置,也就是說一個unit到底定義與否,由其配置文件進(jìn)行標(biāo)識。這類配置文件中主要包含了幾個類別:系統(tǒng)服務(wù),監(jiān)聽的socket、保存的快照以及其他與init相關(guān)的信息,這些配置文件中主要保存在:

/usr/lib/systemd/system/    每個服務(wù)最主要的啟動腳本設(shè)置,類似于之前的/etc/init.d/  

/run/systemd/system/    系統(tǒng)執(zhí)行過程中所產(chǎn)生的服務(wù)腳本,比上面目錄優(yōu)先運行

/etc/systemd/system/    管理員建立的執(zhí)行腳本,類似于/etc/rc.d/rcN.d/Sxx類的功能,比上面目錄優(yōu)先運行

unit的常見類型:

service unit:這類unit的文件擴(kuò)展名為.service,主要用于定義系統(tǒng)服務(wù)(其扮演了在centos6上/etc/init.d/目錄下的服務(wù)腳本的作用)

target unit:這類unit的文件擴(kuò)展名為.target,主要用于模擬實現(xiàn)"運行級別"的概念

device unit:這類unit文件擴(kuò)展名為.device,用于定義內(nèi)核識別的設(shè)備,然后udev利用systemd識別的硬件,完成創(chuàng)建設(shè)備文件名

mount unit:這類unit文件擴(kuò)展名為.mount,主要用于定義文件系統(tǒng)掛載點

socket unit:這類unit文件擴(kuò)展名為.socket,用于標(biāo)識進(jìn)程間通信用到的socket文件

snapshot unit:這類unit文件擴(kuò)展名為.snapshot,主要用于實現(xiàn)管理系統(tǒng)快照

swap unit:這類unit文件擴(kuò)展名為.swap,主要用于標(biāo)識管理swap設(shè)備

automount unit:這類unit文件擴(kuò)展名為.automount,主要用于文件系統(tǒng)自動掛載設(shè)備

path unit:這類unit文件擴(kuò)展名為.path,主要用于定義文件系統(tǒng)中的文件或目錄

第二章    systemd如何管理系統(tǒng)上的各個服務(wù)

1、systemd對服務(wù)的管理(service類unit的管理)

主要是依靠service類型的unit文件進(jìn)行管控的完成的

systemctl命令:

語法:systemctl [OPTIONS…] COMMAND [SERVICE_NAME.service…]

<1>啟動:service SERVICE_NAME start ==>  systemctl start SERVICE_NAME.service

<2>停止:service SERVICE_NAME stop ==>  systemctl stop SERVICE_NAME.service

<3>重啟:service SERVICE_NAME restart ==>  systemctl restart SERVICE_NAME.service

<4>狀態(tài):service SERVICE_NAME status ==>  systemctl status SERVICE_NAME.service

centos7里面狀態(tài)信息里顯示的loaded 表示是否加入到systemctl可管理的列表中(類似centos6中chkconfig –add的概念,如果是loaded,表示已經(jīng)添加到列表中,后面disabled表示沒有開機(jī)自動啟動)

<5>條件式重啟:(相當(dāng)于如果服務(wù)之前啟動了,則對服務(wù)進(jìn)行重啟,如果服務(wù)之前沒啟動,則不執(zhí)行任何操作)

service SERVICE_NAME condrestart ==>  systemctl tryrestart SERVICE_NAME.service

<6>重載或重啟服務(wù):(相當(dāng)于如果服務(wù)支持不重啟而重載配置文件,就進(jìn)行重載,如果服務(wù)不支持重載配置文件,就重啟服務(wù))

cenntos6不支持  

systemctl reload-or-restart SERVICE_NAME.service

<7>重載或條件是重啟:(相當(dāng)于如果服務(wù)支持不重啟而重載配置文件,就進(jìn)行重載,如果服務(wù)不支持重載配置文件,就重啟服務(wù),但重啟的前提是該服務(wù)之前是開啟的)

cenntos6不支持  

systemctl reload-or-try-restart SERVICE_NAME.service

<8>查看某服務(wù)當(dāng)前是否激活:

centos6不支持  

systemctl is-acive SERVICE_NAME.service

<9>查看所有已激活的服務(wù):

systemctl list-unit –type|-t service

<10>查看所有的服務(wù),也就是所有已經(jīng)裝載load的服務(wù),包含已激活和未激活的:

chkconfig –list ==> systemctl list-unit -t service -a

顯示出來的信息的含義:

loaded:Unit配置文件已處理
                active(running):一次或多次持續(xù)處理的運行
                active(exited):成功完成一次性的配置
                active(waiting):運行中,等待一個事件
                inactive:不運行
                enabled:開機(jī)啟動
                disabled:開機(jī)不啟動
                static:開機(jī)不啟動,但可被另一個啟用的服務(wù)激活

<11>設(shè)置服務(wù)可以開機(jī)自動啟動:

chkconfig SERVICE_NAME on ==> systemctl enable SERVICE_NAME.service

<12>禁止服務(wù)開機(jī)自動啟動:

chkconfig SERVICE_NAME off ==> systemctl disable SERVICE_NAME.service

<13>查看某服務(wù)是否能夠開機(jī)自啟動:

chkconfig –list SERVICE_NAME ==> systemctl is-enabled SERVICE_NAME.service

<14>禁止某服務(wù)設(shè)定為開機(jī)自啟:

systemctl mask SERVICE_NAME.service

<15>取消上述禁止:

systemctl unmask SERVICE_NAME.service

<16>查看服務(wù)的依賴關(guān)系:

systemctl list-dependencies SERVICE_NAME.service

 

2、systemd對target類unit的管理(類似于運行級別的管理)

運行級別的對應(yīng)關(guān)系:

0 ==> runlevel0.target 或 poweroff.target

1 ==> runlevel1.target 或 rescue.target

2 ==> runlevel2.target 或 multi-user.target

3 ==> runlevel3.target 或 multi-user.target

4 ==> runlevel4.target 或 multi-user.target

5 ==> runlevel5.target 或 graphical.target

6 ==> runlevel6.target 或 reboot.target

<1>級別切換:

init 數(shù)字 ==> systemctl isolate NAME.target

<2>查看當(dāng)前運行級別:

runlevel ==> systemctl –list-unit -t target

<3>查看所有裝載的target:

systemctl –list-unit -t target -a

<4>查看默認(rèn)運行級別:

systemctl get-default

<5>設(shè)定默認(rèn)運行級別:

systemctl set-default NAME.target

centos6修改/etc/inittab文件

<6>切換至緊急救援模式:

systemctl rescue

<7>切換至緊急emergency模式:比緊急救援模式加載的東西更加少,緊急救援模式還會執(zhí)行系統(tǒng)初始化腳本/etc/rc.d/rc.sysinit系統(tǒng)初始化腳本,但emergency不會執(zhí)行系統(tǒng)初始化腳本,通常用于當(dāng)裝了某些硬件驅(qū)動后無法正常啟動時,才進(jìn)入該模式。

systemctl emergency

3、systemd相關(guān)的其他常用命令:

關(guān)機(jī):systemctl halt、systemctl poweroff

重啟:systemctl reboot

掛起:systemctl suspend

快照:systemctl hibernate

快照并掛起:systemctl hybrid-sleep

4、CentOS6與CentOS7上對服務(wù)的管理方式對比總結(jié)

 

4、CentOS7的啟動流程詳解

<1>UEFi或BIOS初始化,運行POST開機(jī)自檢

        <2>選擇啟動設(shè)備
        <3>引導(dǎo)裝載程序, centos7是grub2
        <4>加載裝載程序的配置文件: /etc/grub.d/   /etc/default/grub    /boot/grub2/grub.cfg
        <5>加載initramfs驅(qū)動模塊
        <6>加載內(nèi)核選項
        <7>內(nèi)核初始化, centos7使用systemd代替init
        <8>執(zhí)行initrd.target所有單元,包括掛載/etc/fstab
        <9>從initramfs根文件系統(tǒng)切換到磁盤根目錄
        <10>systemd執(zhí)行默認(rèn)target配置,配置文件/etc/systemd/default.target /etc/systemd/system/

        <11>systemd執(zhí)行sysinit.target初始化系統(tǒng)及basic.target準(zhǔn)備操作系統(tǒng)
        <12>systemd啟動multi-user.target下的本機(jī)與服務(wù)器服務(wù)
        <13>systemd執(zhí)行multi-user.target下的/etc/rc.d/rc.local
        <14>systemd執(zhí)行multi-user.target下的getty.target及登入服務(wù)

        <15>systemd執(zhí)行g(shù)raphical需要的服務(wù)


當(dāng)前標(biāo)題:CentOS7進(jìn)程管理systemd詳解
網(wǎng)頁路徑:http://www.dlmjj.cn/article/djpopod.html