亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

深入淺析centos7中的systemd

 更新時(shí)間:2018年02月16日 10:39:43   作者:shenxm  
這篇文章主要介紹了centos7中的systemd 的相關(guān)資料,需要的朋友可以參考下

系統(tǒng)啟動(dòng)流程

 POST --> Boot Sequence --> Bootloader --> kernel+initramfs(initrd) --> rootfs --> /sbin/init
 init: 
  CentOS 5: SysV init
  CentOS 6: Upstart
  CentOS 7: Systemd

systemd 

系統(tǒng)啟動(dòng)和服務(wù)器守護(hù)進(jìn)程管理器,負(fù)責(zé)在系統(tǒng)啟動(dòng)或運(yùn)行時(shí),激活系統(tǒng)資源,服務(wù)器進(jìn)程和其它進(jìn)程。
 新特性:
  系統(tǒng)引導(dǎo)時(shí)實(shí)現(xiàn)服務(wù)并行啟動(dòng)
  按需啟動(dòng)守護(hù)進(jìn)程
  自動(dòng)化的服務(wù)依賴關(guān)系管理
  同時(shí)采用socket式與D-Bus總線式激活服務(wù)
  系統(tǒng)狀態(tài)快照
 核心概念:unit
  unit 表示不同類型的systemd對(duì)象,通過(guò)配置文件進(jìn)行標(biāo)識(shí)和配置。
  文件中主要包含了系統(tǒng)服務(wù)、監(jiān)聽(tīng)socket 、保存的系統(tǒng)快照以及其它與init 相關(guān)的信息。
 配置文件:
  /usr/lib/systemd/system: 
   每個(gè)服務(wù)最主要的啟動(dòng)腳本設(shè)置,類似于之前的/etc/init.d/
  /run/systemd/system:
   系統(tǒng)執(zhí)行過(guò)程中所產(chǎn)生的服務(wù)腳本,比/usr/lib/systemd/system目錄優(yōu)先運(yùn)行
  /etc/systemd/system:
   管理員建立的執(zhí)行腳本,類似于/etc/rc.d/rcN.d/Sxx 類的功能,比/run/systemd/system目錄優(yōu)先運(yùn)行
 關(guān)鍵特性:
  基于socket 的激活機(jī)制: socket 與服務(wù)程序分離
  基于d-bus 的激活機(jī)制: 
  基于device 的激活機(jī)制: 
  基于path 的激活機(jī)制: 
  系統(tǒng)快照: 保存各unit的當(dāng)前狀態(tài)信息于持久存儲(chǔ)設(shè)備中,向后兼容sysv init 腳本
 不兼容:
  systemctl 命令固定不變,不可擴(kuò)展
  非由systemd 啟動(dòng)的服務(wù),systemctl無(wú)法與之通信和控制

Unit 類型

 Systemctl –t help 查看unit 類型
 Service unit: 文件擴(kuò)展名為.service, 用于定義系統(tǒng)服務(wù)
 Target unit: 文件擴(kuò)展名為.target,用于模擬實(shí)現(xiàn)運(yùn)行級(jí)別
 Device unit: .device,用于定義內(nèi)核識(shí)別的設(shè)備
 Mount unit:  .mount, 定義文件系統(tǒng)掛載點(diǎn)
 Socket unit: .socket, 用于標(biāo)識(shí)進(jìn)程間通信用的socket文件,也可在系統(tǒng)啟動(dòng)時(shí),延遲啟動(dòng)服務(wù),實(shí)現(xiàn)按需啟動(dòng)
 Snapshot unit: .snapshot, 管理系統(tǒng)快照
 Swap unit: .swap, 用于標(biāo)識(shí)swap 設(shè)備
 Automount unit: .automount ,文件系統(tǒng)的自動(dòng)掛載點(diǎn)
 Path unit: .path,用于定義文件系統(tǒng)中的一個(gè)文件或目錄使用,常用于當(dāng)文件系統(tǒng)變化時(shí),延遲激活服務(wù),如:spool 目錄

服務(wù)管理

`centos7幾乎一切服務(wù)都是由systemctl來(lái)管理service unit,centos7之前的service同時(shí)仍然兼容。

運(yùn)行級(jí)別

 target units: 
  unit 配置文件:
   .target,用于模擬實(shí)現(xiàn)運(yùn)行級(jí)別
  ls /usr/lib/systemd/system/*.target
  systemctl list-unit-files --type target --all
 運(yùn)行級(jí)別:
  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 graphical.target
  
 級(jí)別切換:
  init N ==> systemctl isolate name.target
  systemctl isolate multi-user.target
  注意:只有/lib/systemd/system/*.target 文件中AllowIsolate=yes才能切換,修改文件需執(zhí)行systemctl daemon-reload 才能生效
 查看target:
  systemctl list-units --type target
 獲取默認(rèn)運(yùn)行級(jí)別:
  /etc/inittab ==> systemctl get-default
  runlevel 
  who -r
 修改默認(rèn)級(jí)別:
  /etc/inittab ==> systemctl set-default name.target
  systemctl set-default multi-user.target
  ls –l /etc/systemd/system/default.target
 切換至緊急救援模式:
  相當(dāng)于init 1
  systemctl rescue
 切換至emergency 模式:
  systemctl emergency
 其它常用命令:
  傳統(tǒng)命令init ,poweroff ,halt ,reboot 都成為 systemctl 的軟鏈接
  關(guān)機(jī):systemctl halt 、systemctl poweroff
  重啟:systemctl reboot
  掛起:systemctl suspend
  休眠: :systemctl hibernate
  休眠并掛起:systemctl hybrid-sleep

CentOS7 引導(dǎo)啟動(dòng)順序

 UEFi 或BIOS 初始化,運(yùn)行POST 開(kāi)機(jī)自檢
 選擇啟動(dòng)設(shè)備
 引導(dǎo)裝載程序, centos7 是grub2
 加載裝載程序的配置文件:/etc/grub.d/ ,/etc/default/grub ,/boot/grub2/grub.cfg
 加載initramfs 驅(qū)動(dòng)模塊
 加載內(nèi)核選項(xiàng)
 內(nèi)核初始化,centos7 使用systemd 代替init
 執(zhí)行initrd.target 所有單元,包括掛載/etc/fstab
 從initramfs 根文件系統(tǒng)切換到磁盤(pán)根目錄
 systemd執(zhí)行/etc/systemd/system目錄下的配置
  systemd 執(zhí)行默認(rèn)target 配置,配置文件/etc/systemd/system/default.target
  systemd 執(zhí)行sysinit.target 初始化系統(tǒng)及basic.target 準(zhǔn)備操作系統(tǒng)
  systemd 啟動(dòng)multi-user.target 下的本機(jī)與服務(wù)器服務(wù)
  systemd 執(zhí)行multi-user.target 下的/etc/rc.d/rc.local
  systemd 執(zhí)行multi-user.target 下的getty.target及登錄服務(wù)
  systemd 執(zhí)行g(shù)raphical 需要的服務(wù)

service unit 文件格式

 /etc/systemd/system :
  系統(tǒng)管理員和用戶使用
 /usr/lib/systemd/system :
  發(fā)行版打包者使用
 相關(guān)布爾值
  1 、yes 、on 、true 都是開(kāi)啟
  0 、no 、off、false 都是關(guān)閉
 時(shí)間單位
  默認(rèn)是秒,所以要用毫秒(ms )分鐘(m )等須顯式說(shuō)明
 service unit file 文件通常由三部分組成:
  [Unit] : 定義與Unit 類型無(wú)關(guān)的通用選項(xiàng);用于提供unit 的描述信息、unit 行為及依賴關(guān)系等
  [Service] : 與特定類型相關(guān)的專用選項(xiàng);此處為Service 類型
  [Install] : 定義由“systemctl enable” 以及"systemctl disable“ 命令在實(shí)現(xiàn)服務(wù)啟用或禁用時(shí)用到的一些選項(xiàng)
 Unit 段的常用選項(xiàng):
  Description : 描述信息
  After : 定義unit 的啟動(dòng)次序,表示當(dāng)前unit 應(yīng)該晚于哪些unit 啟動(dòng),其功能與Before 相反
  Requires : 依賴到的其它units ,強(qiáng)依賴,被依賴的units 無(wú)法激活時(shí),當(dāng)前unit 也無(wú)法激活
  Wants : 依賴到的其它units ,弱依賴
  Conflicts : 定義units 間的沖突關(guān)系
 Service 段的常用選項(xiàng):
  Type : 定義影響ExecStart 及相關(guān)參數(shù)的功能的unit 進(jìn)程啟動(dòng)類型
  simple : 默認(rèn)值,這個(gè)daemon(后臺(tái)進(jìn)程)主要由ExecStart所接的指令串來(lái)啟動(dòng),啟動(dòng)后常駐于內(nèi)存中
  forking : 由ExecStart 啟動(dòng)的程序透過(guò)spawns(繁衍)延伸出其他子程序來(lái)作為此daemon的主要服務(wù)。原生父程序在啟動(dòng)結(jié)束后就會(huì)終止
  oneshot : 與simple類似,不過(guò)這個(gè)程序在工作完畢后就結(jié)束了,不會(huì)常駐在內(nèi)存中
  dbus : 與simple類似,但這個(gè)daemon必須要在取得一個(gè)D-Bus的名稱后,才會(huì)繼續(xù)運(yùn)作. 因此通常也要同時(shí)設(shè)定BusNname= 才行
  notify : 在啟動(dòng)完成后會(huì)發(fā)送一個(gè)通知消息。還需要配合NotifyAccess來(lái)讓 Systemd 接收消息
  idle : 與simple類似,要執(zhí)行這個(gè)daemon必須要所有的工作都順利執(zhí)行完畢后才會(huì)執(zhí)行。這類的daemon通常是開(kāi)機(jī)到最后才執(zhí)行即可的服務(wù)
  EnvironmentFile : 環(huán)境配置文件
  ExecStart : 指明啟動(dòng)unit要運(yùn)行命令或腳本的絕對(duì)路徑
  ExecStartPre: ExecStart前運(yùn)行
  ExecStartPost: ExecStart后運(yùn)行
  ExecStop : 指明停止unit要運(yùn)行的命令或腳本
  Restart : 當(dāng)設(shè)定Restart=1時(shí),則當(dāng)次daemon服務(wù)意外終止后,會(huì)再次自動(dòng)啟動(dòng)此服務(wù)
 Install 段的常用選項(xiàng):
  Alias : 別名,可使用systemctl command Alias.service
  RequiredBy : 被哪些units所依賴,強(qiáng)依賴
  WantedBy : 被哪些units所依賴,弱依賴
  Also : 安裝本服務(wù)的時(shí)候還要安裝別的相關(guān)服務(wù)
 注意:
  對(duì)于新創(chuàng)建的unit文件,或者修改了的unit文件,要通知systemd 重載此配置文件, 可以選擇重啟
  systemctl daemon-reload
 示例:
  vim /etc/systemd/system/bak.service
   [Unit]
   Description=backup /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

設(shè)置內(nèi)核參數(shù)

只影響當(dāng)次啟動(dòng)
 啟動(dòng)時(shí),在linux16 行后添加
 systemd.unit=desired.target
 systemd.unit=emergency.target
 systemd.unit=recure.target
 recure.target比emergency支持更多的功能,例如日志等

啟動(dòng)排錯(cuò)

 文件系統(tǒng)損壞,先嘗試自動(dòng)修復(fù),失敗則進(jìn)入emergency shell,提示用戶修復(fù)
 在/etc/fstab 不存在對(duì)應(yīng)的設(shè)備和UUID等一段時(shí)間,如不可用,進(jìn)入emergency shell
 在/etc/fstab 不存在對(duì)應(yīng)掛載點(diǎn)systemd嘗試創(chuàng)建掛載點(diǎn),否則提示進(jìn)入emergency shell.
 在/etc/fstab 不正確的掛載選項(xiàng)提示進(jìn)入emergency shell

破解CentOS7 的root 口令

方法一
  啟動(dòng)時(shí)任意鍵暫停啟動(dòng)
  按e 鍵進(jìn)入編輯模式
  將光標(biāo)移動(dòng)linux16 開(kāi)始的行,添加內(nèi)核參數(shù)rd.break
  按ctrl-x 啟動(dòng)
  mount –o remount,rw /sysroot
  chroot /sysroot
  passwd root
  touch /.autorelabel
  exit
  reboot
 方法二
  啟動(dòng)時(shí)任意鍵暫停啟動(dòng)
  按e 鍵進(jìn)入編輯模式
  將光標(biāo)移動(dòng)linux16 開(kāi)始的行,改為rw init=/sysroot/bin/sh
  按ctrl-x 啟動(dòng)
  chroot /sysroot
  passwd root
  touch /.autorelabel
  exit
  reboot

       修復(fù)GRUB2

 GRUB “the Grand Unified Bootloader” ”
  引導(dǎo)提示時(shí)可以使用命令行界面
  可從文件系統(tǒng)引導(dǎo)
 主要配置文件 /boot/grub2/grub.cfg
 修復(fù)配置文件
  grub2-mkconfig > /boot/grub2/grub.cfg
  grub2-mkconfig -o /boot/grub2/grub.cfg
 修復(fù)grub
  grub2-install /dev/sda (BIOS 環(huán)境)
  grub2-install (UEFI 環(huán)境)
 調(diào)整默認(rèn)啟動(dòng)內(nèi)核
  vim /etc/default/grub
  GRUB_DEFAULT=0

總結(jié)

以上所述是小編給大家介紹的centos7中的systemd,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!

相關(guān)文章

最新評(píng)論