麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統 > CentOS > 正文

系統管理之Systemd詳解(centos7)

2024-06-28 15:59:56
字體:
來源:轉載
供稿:網友

http://www.aichengxu.com/linux/11318300.htm

這篇著重講解下Syetemd的相關知識,systemd可以說是centos7上的重大改革,功能之強大媲美一個操作系統,那下面就從以下幾點來進行講解:

CentOS7啟動

Unit介紹

服務管理和查看

啟動排錯

破解口令

修復grub2

啟動流程:

post-->BISO-->bootloader(MBR)-->kernel(ramdisk)-->rootfs-->/sbin/init

init程序:

不同系統上的init程序版本centos5:Sysv lnitcentos6:Upstartcentos7:systemd 系統守護進程

systemd介紹

Systemd:系統啟動和服務器守護進程管理器,負責在系統啟動或運行時,激活系統資源,服務器進程和其它進程

systemd的新特性:

系統引導時實現服務并行啟動;實現快速開機按需啟動守護進程:能自動保存系統狀態快照:基于依賴關系定義服務控制邏輯:(自動化的服務依賴關系管理)同時采用socket式與D-Bus總線式激活服務

systemd核心概念:

unit(單元):    unit表示不同類型的systemd對象    unit由其相關的配置文件進行標識,識別和配置.    相關文件中主要包含了系統服務,監聽的socket,保存的快照以及其他與init相關的信息;    這些配置文件主要保存在        /usr/lib/systemd/system:每個服務最主要的啟動腳本設置,類似于之前的/etc/init.d/        /run/systemd/system:系統執行過程中所產生的服務腳本,比上面目錄優先運行        /etc/systemd/system:管理員建立的執行腳本,類似于/etc/rc.d/rcN.d/Sxx類的功能,比上面目錄優先運行unit的常見類別:

Service unit:文件擴展名為.service,用于定義系統服務,類似服務腳本    Target unit:文件擴展為.target,用于模擬實現"運行級別";與/etc/inittab不一樣,只是為了對應老版本的系統    Device unit:.device,用于定義內核識別的設備;centos6下,/dev目錄下的設備文件是由udev根據/sys/目錄下由內核探測輸出的信息而創建的,對centos7來說,/dev目錄下是由systemd和udev聯合創建的,主要由systemd完成.systemd識別硬件,主要靠*.device文件.    Mount unit:.mount,用于定義文件系統掛載點;kernel 3.0版本后的系統,大都是用cgroup(k控制組)來實現資源分配.mount后看到大量的cgroup信息,cgroup實現對資源分配的一種內核中的資源分配的機制.systemd負責對cgroup的激活,實現資源分配.    Socket unit:.socket,用于標識進程間通信用到的socket文件.任何主機監聽在一個套接字上,任何進程監聽在一個套接字上,或者任何進程打開一個隨機端口去與別的服務器的進程進行通道,都要創建socket文件.現在這些創建等功能是有systemd負責管理實現的    Snapshot unit:.snapshot,管理系統快照    Swap unit:.swap,用于表示swap設備    Autommount unit:.autommount,文件系統自動掛載點設備    Path unit:.path,用于定于文件系統中的一文件或目錄使用,常用于當文件系統發生變化時,延遲激活服務,如: spool 目錄關鍵特性:    基于socket的激活機制,socket與程序分離;    基于D-bus(總線)的激活機制;如果總線上有對某一個服務的訪問,那么就基于總線的請求,將某一設備激活    基于device的激活機制;當某個設備插入,能自動激活mount unit和deviceunit或autommount unit,能監控當前系統和內核所輸出的硬件信息,一旦發現某個硬件出現,先創建設備文件,在自動掛載至某掛載點;掛載點不存在,還能自動創建.    基于Path的激活機制;系統能夠監控某個目錄或文件的存在,來激活一個服務或進程;比如說,某個進程崩潰時創建一個鎖文件,系統會根據判斷鎖文件的存在,去啟動另一個進程來判斷,崩潰進程的原因;    系統快照:保存各unit的當前狀態信息于持久存儲設備中;    向后兼容sysv lnit腳本:/etc/init.d/下的服務腳本不兼容:    systemctl的命令是固定不變的;    非由systemd啟動的服務,systemctl無法與之通信,控制服務;

管理系統服務:

centos7:service類型的unit文件;所有命令要靠systemctl控制;注意:能兼容早期的服務腳本systemctl命令:    名稱:Control the systemd system and service manager    格式: systemctl [OPTIONS...] COMMAND NAME[.service]    命令示例        啟動服務:service NAME start --> systemctl start NAME.service        停止服務:service NAME stop --> systemctl stop NAME.service        重啟服務:service NAME restart --> systemctl restart NAME.service        查看狀態:service NAME status --> systemctl status NAME.service        條件式重啟服務:service NAME condrestart--> systemctl try-restart-NAME.service        重載或重啟服務:systemctl reload-or-restart NAME.service        重載或條件式重啟:systemctl reload-or-try-restart NAME.service        查看某服務當前激活與否的狀態:systemctl    is-active NAME.service            查看所有已激活的服務:systemctl list-units -t service            查看所有服務(激活和未激活):chkconfig --list-->systemctl list-units -t service -a        查看所有服務的開機自啟狀態:        chkconfig --list ==> systemctl list-unit-files --type service        設置服務開機自啟:chkconfig NAME on --> systemctl enable NAME.service        禁止服務開機自啟:chkconfig NAME off --> systemctl disable NAME.service        查看某服務是否能開機自啟:chkconfig --list NAME --> systemctl is-enabled NAME.service        禁止某服務設定為開機自啟或手動啟動:systemctl mask NAME.service        取消禁止某服務設定為開機自啟或手動啟動:systemctl unmask NAME.service        查看服務的依賴關系:systemctl list-dependencies NAME.service        用來列出該服務在哪些運行級別下啟用和禁用:chkconfig sshd –list ==>ls /etc/systemd/system/*.wants/sshd.service        殺掉進程:systemctl kill 進程名服務狀態:    systemctl list-units --type service --all顯示狀態    loaded:Unit配置文件已處理    active(running):一次或多次持續處理的運行    active(exited):成功完成一次性的配置    active(waiting):運行中,等待一個事件    inactive:不運行    enabled:開機啟動    disabled:開機不啟動    static:開機不啟動,但可被另一個啟用的服務激活systemctl命令示例:    顯示所有單元狀態        systemctl 或 systemctl list-units    只顯示服務單元的狀態        systemctl --type=service    顯示sshd服務單元        systemctl status sshd.service –l    驗證sshd服務當前是否活動        systemctl is-active sshd    啟動,停止和重啟sshd服務        systemctl start sshd.service        systemctl stop sshd.service        systemctl restart sshd.service    重新加載配置        systemctl reload sshd.service    列出活動狀態的所有服務單元        systemctl list-units --type=service    列出所有服務單元        systemctl list-units --type=service --all    查看服務單元的啟用和禁用狀態。        systemctl list-unit-files --type=service    列出失敗的服務        systemctl --failed --type=service    列出依賴的單元        systemctl list-dependencies sshd    驗證sshd服務是否開機啟動        systemctl is-enabled sshd    禁用network,使之不能自動啟動,但手動可以        systemclt disable network    啟用network        systemctl enable network    禁用network,使之不能手動或自動啟動        systemclt mask network    啟用network        systemctl umask network管理target units:    unit配置文件: .target    ls /usr/lib/systemd/system/*.target    systemctl list-unit-files --type target --all    運行級別:        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    查看依賴性:        systemctl list-dependencies NAME.target    級別切換:        centos6: init N        centos7: systemctl isolate NAME.target        注: 只有/lib/systemd/system/*.target文件中AllowIsolate=yes 才能切換(修改文件需執行systemctl daemonreload才能生效)    查看級別:        centos6:runlevel 或者 who -r        centos7:systemctl list-units -t target    查看所有級別:systemctl list-units -t target -a     獲取默認運行級別:sytemctl get-default    修改默認運行級別:        systemctl set-default NAME.target        ls –l /etc/systemd/system/default.target    切換至緊急救援(級別1)模式:systemctl rescue    切換至emergency(緊急)模式:各種驅動不會被加載,各種系統初始化功能不會被加載.是真正的實現系統救援的模式:因驅動不兼容導致系統崩潰,適合切換此模式救援.        systemctl emergency    其他常用命令:        關機:systemctl halt,systemctl poweroff        重啟:systemctl reboot        掛起:systemctl suspend        快照:systemctl hlbernate        快照并掛起:systemctl hybrid-sleep    修改運行級別就是修改/etc/systemd/system/default.target的連接文件

centos 7 引導順序

UEFi或BIOS初始化,運行POST開機自檢選擇啟動設備引導裝載程序, centos7是grub2加載裝載程序的配置文件: /etc/grub.d/    /etc/default/grub /boot/grub2/grub.cfg加載initramfs驅動模塊加載內核選項內核初始化, centos7使用systemd代替init執行initrd.target所有單元,包括掛載/etc/fstab從initramfs根文件系統切換到磁盤根目錄systemd執行默認target配置,配置文件    /etc/systemd/default.target /etc/systemd/system/systemd執行sysinit.target初始化系統及basic.target準備操作系統systemd啟動multi-user.target下的本機與服務器服務systemd執行multi-user.target下的/etc/rc.d/rc.localSystemd執行multi-user.target下的getty.target及登入服務systemd執行graphical需要的服務

service target file:

/etc/systemd/system:系統管理員和用戶使用/usr/lib/systemd/system:發行版打包者使用以 “ #” 開頭的行后面的內容會被認為是注釋相關布爾值, 1、 yes、 on、 true 都是開啟, 0、 no、 off、false 都是關閉。時間單位默認是秒,所以要用毫秒( ms)分鐘( m)等請顯式說明文件通常有三部分組成:        [Unit]:定義與Unit類型無關的通用選項;用于提供unit的描述信息,unit行為及依賴關系        Description:意義性描述信息 "systemctl status NAME"命令 可顯示        After:定義unit的啟動次序;表示當前unit應該晚與那些unit啟動;        Requles:定義依賴到的其他unit;強依賴關系,只有依賴的unit啟動,此unit才能啟動;任何依賴unit啟動不了,當前unit就無法激活        Wants:定義依賴到的其他unit;弱依賴關系;被依賴的unit對本身的啟動影響不大.        Conflicts:定義unit間的沖突關系        Documentation=man:httpd(8) 文檔的路徑        Documentation=man:apachectl(8)    [Service]:定義與特定類型相關的專用選項;此處為Service類型        Type=notify   用來定義影響execstart及相關參數的功能的unit進程啟動類型            類型:                simple:默認值,表示由execstart啟動的進程是主進程                forking: 表示由execstart指明的程序所啟動的進程生成的一個子進程為主進程,啟動完成后,父進程會退出;                oneshot:類似于simple,在啟動后續的unit前,父進程會退出;一次性的                dbus:類似于simple,后續的unit僅在主進程得到dbus之后,才能啟動;                notify:類似于simple,表示后續的unit僅在通過sdbotify函數發送通知以后,然后才能運行這個命令                ldle:與simple類似,要執行這個daemon必須要所有的工作都順利執行完畢后才會執行。這類的daemon通常是開機到最后才執行即可的服務        EnvironmentFile=/etc/sysconfig/httpd 指定啟動unit時要用到的環境配置文件,從這個文件中調用變量        ExecStart=指明啟動unit要t運行的命令或腳本        ExecReload:指明重新加載unit要運行的命令或腳本        ExecStop: 指明停止unit要運行的命令或腳本        Restart:當設定Restart=1 時,則當次daemon服務意外終止后,會再次自動啟動此服務    [Install]:定義由"systemctl enable"以及"systemctl disable"命令在實現服務啟動或禁用時用到的一些選項        Alias:當前unit的別名        RequiredBy:被那些units所依賴;依賴于當前unit的unit列表;強依賴        WantedBy:被那些units所依賴;弱依賴        Also:安裝本服務的時候還要安裝別的相關服務    注意:對于新創建的unit文件或修改了的init文件,要通知systemd重載次配置文件.        #systemctl daemon-reload        #systemctl restart NAME.service    練習:為當前系統的httpd服務提供一個unit文件;        #vim /etc/systemd/system/bak.service            [Unit]                Description=backup my etc                Requires=atd.service            [Service]                Type=simple                ExecStart=/bin/bash -c "echo /testdir/bak.sh|at now"            [Install]                WantedBy=multi-user.target        #systemctl daemon-reload        #systemctl start bak

設置內核參數進入特殊運行級別

設置內核參數,只影響當次啟動    啟動時,在linux16行后添加systemd.unit=desired.target    systemd.unit=emergency.target    systemd.unit=recure.target    recure.target 比emergency 支持更多的功能,例如日志等

啟動排錯

文件系統損壞    先嘗試自動修復,失敗則進入emergency shell,提示用戶修復在/etc/fstab不存在對應的設備和UUID等一段時間,如不可用,進入emergency shell在/etc/fstab不存在對應掛載點    systemd 嘗試創建掛載點,否則提示進入emergency shell.在/etc/fstab不正確的掛載選項    提示進入emergency shell

centos 7 破解root口令

啟動時任意鍵暫停啟動按e鍵進入編輯模式

將光標移動linux16開始的行,添加內核參數rd.break

按ctrl-x啟動

mount –o remount,rw /sysroot

chroot /sysroot

passwd root

touch /.autorelabel

修復GRUB2

GRUB“ the Grand Unified Bootloader”    引導提示時可以使用命令行界面    可從文件系統引導主要配置文件 /boot/grub2/grub.cfg修復配置文件    grub2-mkconfig > /boot/grub2/grub.cfg修復grub    grub2-install /dev/sda BIOS環境    grub2-install UEFI環境

實戰演練:

為編譯安裝的httpd服務,實現service unit文件破解centos7 口令修改默認的啟動內核啟動時臨時禁用SELinux啟動時進入emergency模式刪除編譯安裝的新內核


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 精品午夜久久 | 久久噜噜噜精品国产亚洲综合 | 国产成人在线网站 | 免费观看视频91 | 可以看毛片的网址 | 一级免费 | 亚洲福利在线视频 | 中文字幕一区二区三区久久 | 国产色视频在线观看免费 | a视频在线免费观看 | 99久久电影 | 国产羞羞视频免费在线观看 | 一区二区网 | 在线播放免费播放av片 | 欧洲狠狠鲁 | 在线观看免费毛片视频 | 国产精品一区二av18款 | 久久久久免费精品国产小说色大师 | vidz 98hd | 午夜视频在线观 | 羞羞视频免费网站男男 | 国产成人综合在线观看 | 国产片91| 日本黄色一级视频 | 男女一边摸一边做羞羞视频免费 | av在线官网| 久久亚洲春色中文字幕久久 | 欧美中文字幕一区二区三区亚洲 | 久久久久久亚洲综合影院红桃 | 精久久久| 国产精品成人久久 | 一道本不卡一区 | 午夜爱爱福利 | 欧美精品成人一区二区在线观看 | 真人一级毛片免费 | 日日草夜夜 | 久久久久久久久久亚洲精品 | 亚洲成人伊人 | 一级成人毛片 | 毛片免费观看视频 | 欧美女优一区 |