systemd

systemd

  • 啟動流程:
    POST -> BIOS -> MBR bootloader -> kernel 臨時根 -> 根文件系統 -> init

    • init
      能夠管理、控制init進程的模塊,就是init系統
      能夠讓系統在用戶預定義的級別下運行
  • 設備管理器:

    • sysvinit : CentOS 5

      • 第一個廣泛應用的init系統
      • 簡單、穩定:

        • 只需要編寫服務的啟動腳本
          設置啟動順序時,通過連接即可完成
      • 執行效率較高,需要時間較長

        • 對新的Linux特性 支持不夠好
    • upstart: CentOS 6

      • 啟動速度大大提高
        反向兼容sysvinit
        設計更先進
    • systemd: CentOS 7

      • 替代了所有的sysvinit的功能,并且添加更多的功能。
        極大提高了啟動速度
        標準化管理
        按需激活進程:分配套接字,但不啟動服務
        系統狀態快照

systemd配置:

  • 核心:unit
    由其相關配置文件進行標識、識別和配置;文件中主要包含了系統服務、監聽的socket、保存的快照以及其他與init相關的信息;這些配置文件主要保存:

    • /usr/lib/systemd/system
    • /run/systemd/system
    • /etc/systemd/system
  • unit常見類型:

    • service類型:服務類型

      • 擴展名.service,用于定義系統服務;
    • socket類型:套接字類型

      • 擴展名.socket,標示進程間通信時使用到的socket文件
    • device類型:設備類型

      • 擴展名.device,定義內核能夠識別的設備
    • mount類型:掛載點類型

      • 擴展名.mount,定義文件系統的默認掛載點
        cgroup:控制組; 實現內核資源合理分配的機制
    • automount類型:自動掛載類型

      • 擴展名.automount,定義文件系統自動掛載點設備
    • target類型:啟動目標類型

      • 擴展名.target 用來模擬實現“運行級別”
    • snapshot類型:快照類型

      • 擴展名.snapshot,用來管理系統快照
    • swap類型:交換分區類型

      • 擴展名.swap,用來標識swap設備、管理和定義交換分區
    • path類型 監視文件類型

      • 擴展名.path,用來定義文件系統的某一文件或目錄
    • timer 任務計劃
      slice 資源控制
      scope 外部進程
  • 關鍵特性:

    1. 基于socket的激活機制
      socket與程序之間分離,可以先分配socket,不啟動;
    2. 基于bus的激活機制
      若總線上存在對某一服務的訪問,可以基于該請求,將設備激活
    3. 基于device的激活機制
      當接入新設備時,激活device unit、mount unit、automount unit
      首先創建設備文件,再自動掛載到某掛載點,若掛載點不存在,則自動創建 。
    4. 基于PATH的激活機制
    5. 系統快照
      能夠將各個unit的當前狀態信息保存至持久存儲設備中
    6. 向后兼容 sysv init腳本
      /etc/init.d/服務腳本,也能夠通過 systemd 啟動
  • 不兼容的特性:

    1. systemctl的命令是固定不變的
    2. 若服務不是通過systemctl啟動的服務,那么systemctl無法與之通信,無法控制服務;
  • 管理service units

    • CentOS 7:service類型的unit文件
      systemctl [OPTIONS…] COMMAND NAME.service
      1、命令:service -> systemctl
      2、啟動服務:service NAME start -> systemctl start NAME.service
      3、關閉服務:service NAME stop -> systemctl stop NAME.service
      4、重啟:service NAME restart -> systemctl restart NAME[.service]
      5、查看狀態:service NAME status -> systemctl status NAME.service
      6、條件式重啟:service NAME condrestart -> systemctl try-restart NAME.service
      若服務已啟動,則重啟;若服務未啟動,則放棄操作
      7、重載或重啟:systemctl reload-or-restart NAME.service
      可以重載則重載;重新加載未成功,則重新啟動
      重載:在不停止的情況下重新加載配置文件
      重啟:先stop再start
      8、重載或條件式重啟:systemctl reload-or-try-restart NAME.service

      9、查看服務當前的激活狀態:systemctl is-active NAME.service
      服務啟動則返回active;服務未啟動則返回unknown
      10、查看所有已激活的服務:systemctl list-units -t service
      11、查看所有服務:chkconfig –list -> systemctl list-units -t service -a

      12、設置服務開機自啟:chkconfig NAME on -> systmectl enable NAME.service
      13、禁止服務開機自啟:chkconfig NAME off -> systemctl disable NAME.service
      14、查看服務是否能開機自啟:chkconfig –list NAME -> systemctl is-enabled NAME.service

      15、禁止某服務設定為開機自啟:systemctl mask NAME.service
      16、取消此禁止:systemctl unmask NAME.service

      17、查看服務的依賴關系:systemctl list-dependencies NAME.service

  • 管理target units
    1、設置運行級別

    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

    2、切換運行級別:init N -> systemctl isolate NAME.target

    3、查看當前激活的運行級別:runlevel -> systemctl list-units -type target
    4、查看當前所有激活的運行級別:runlevel -> systemctl list-units -type target -a

    5、獲取默認運行級別:systemctl get-default
    6、修改默認運行級別:systemctl set-default NAME.target
    7、centos 6:修改 /etc/inittab

    8、切換緊急救援模式(啟動級別1):systemctl rescue
    9、切換emergency模式:

    其它相關命令:
    關機:systemctl halt,systemctl poweroff
    重啟:systemctl reboot
    掛起:systemctl suspend
    快照:systemctl hibernate
    快照并掛起:systemctl hybrid-sleep

  • service units file:

    [unit]:定義與unit類型無關的通用選項;用于提供unit的描述信息、unit行為及依賴關系;
      description: 描述信息;意義性描述;
      after:定義unit的啟動次序;表示當前unit應該晚于哪些unit啟動;其功能與before相反;
      requies:依賴到的其他units;強依賴,被依賴的units無法激活,當前unit即無法激活;
      wants:依賴到的其他units;弱依賴,被依賴的units無法激活,不妨礙當前unit激活
      conflicts:定義units間的沖突關系;
    
    [service]:與特定類型相關的專用選項;此處為service類型;
      type:用于定義影響execstart及相關參數的功能的unit進程啟動類型;
        類型:
          simple:默認值,定義execstart選項指定的程序是主程序
          forking:定義execstart選項調用的某一子進程做主程序,之后父進程會退出。 
          oneshot:
          dbus:
          notify:類似于simple,進程在收到notify函數的通知時才啟動
          idle:類似于simple
      ExecStart:指明啟動unit要運行命令或腳本;execstartpre,execstartpost
      ExecStop指明停止unit要運行的命令或腳本;
      Restart
    
    [install]:定義由“systemctl enable”以及“systemctl disable”命令在實現服務啟用或禁用時用到的選項;
      alias
      wantedby:被哪些units所依賴;弱依賴
      requiredby:被哪些units所依賴;強依賴

    注意:對于新創建的units文件或修改了的units文件,要通知systemd重載此配置文件;
    使用:systemctl daemon-reload

原創文章,作者:s,如若轉載,請注明出處:http://www.www58058.com/76532

(0)
ss
上一篇 2017-05-21 12:27
下一篇 2017-05-21 12:29

相關推薦

  • iptables/netfilter進階

      在上一章當中我們介紹了iptables的介紹以及它的基本使用,下面我們開始介紹iptables的命令用法以及iptables是如何工作的。 1、回顧 2、iptables相關命令 1、回顧   我們回顧一下上一章節的內容,在上一章節中我們講述的是iptables的基本概念以及命令格式,同時講述規則鏈與表的概念,那么…

    Linux干貨 2017-02-03
  • btrfs管理及應用

    一、btrfs的命令選項     mkfs.btrfs         -L 'LABEL' 指定卷標         -d <type&…

    Linux干貨 2016-03-12
  • 08.04 筆記總結

    1.ps axo  user,ruser,group,rgroup,cmd  //  ruser  表示程序發起的用戶,一般是指系統當前的用戶  //  user  表示程序的所有者。在大數情況下,兩個用戶都是系統當前的用戶, 之后當程序被賦予suid的時候,可能user會發生變化。 2.…

    Linux干貨 2016-08-08
  • corosync+pacemaker+drbd+mysql來實現mysql的高可用和數據的同步

    實現拓撲圖: 實驗流程: 先對兩主機安裝上corosync和pacemaker 兩主機安裝drbd服務,并且設置好drbd的組設備 選擇drbd主節點上,進行數據庫的初始化 進行資源的定義和配置 測試 實驗前,我們還需要做一些準備工作: 1、時間必須保持同步   使用ntp服務器 2、節點必須名稱互相通信    解析節點名稱 &…

    Linux干貨 2015-11-10
  • 初識 vi/vim文本編輯器

    我們操作文件,終究離不開編輯文件,對文件內容的編輯,Linux系統下,我們通常使用VI/VIM來編輯文件。VI是每個Linux都會自帶的文本編輯器,VIM是VI的增強版,現在的最新版都已自帶,但是可能有些發行版本沒有自帶,可以使用sudo apt-get install vim命令安裝vim。 可以使用vi或者vim命令直接進入新的文本文件,或者vim 文件…

    Linux干貨 2017-07-29
  • 文件系統自動掛載

    什么是文件系統自動掛載?          利用mount在shell終端進行掛載的時,開機自動啟動文件文件系統不會自動掛載,我們需要開機的時候自動掛載文件系統,稱為文件系統自動掛載 實現Linux自動掛載文件:/etc/fstab Linux中掛載注意事項:  &nb…

    Linux干貨 2016-08-29
欧美性久久久久