13.Linux_服務管理

systemd說明

  • Systemd從字面意思上看,應該是系統守護進程的意思,所有的系統服務都是有Systemd來啓動的,它的PID是1,取代原來CentOS6的init.d。
  • Systemd 並不是一個命令,而是一組命令,涉及到系統管理的方方面面,它包括了:systemctl、systemd-analyze、hostnamectl、localectl、 timedatectl、loginctl等多個管理工具。
  • CentOS7的systemd服務管理方式和centOS6的init的管理方式已經有了很大區別。最大的區別就是systemd是常駐內存的,因此執行速度比較快,並且實現了併發式的服務啓動,解決了服務的依賴性問題。

systemctl命令

  • systemctl是 Systemd 的主命令,用於管理系統和服務狀態。
    systemctl poweroff #系統關機
    systemctl reboot #重新開機
    systemctl suspend #進入暫停模式
    systemctl hibernate #進入休眠模式
    systemctl rescue #強制進入救援模式
    systemctl emergency #強制進入緊急救援模式
    

Unit

  • Systemd 可以管理所有系統資源。不同的資源統稱爲 Unit(單位)。

  • unit類型

    類型 含義
    Service unit 系統服務
    Target unit 多個 Unit 構成的一個組
    Device Unit 硬件設備
    Mount Unit 文件系統的掛載點
    Automount Unit 自動掛載點
    Path Unit 文件或路徑
    Scope Unit 不是由 Systemd 啓動的外部進程
    Slice Unit 進程組
    Snapshot Unit Systemd 快照,可以切回某個快照
    Socket Unit 進程間通信的 socket
    Swap Unit swap 文件
    Timer Unit 定時器
  • unit管理

命令:systemctl [command] [unit]

    start:啓動unit
    stop:關閉unit
    restart:重啓unit
    reload:重載unit的配置
    enable:設置下次開機時,unit會被啓動
    disable:設置下次開機時,unit不會被啓動
    is-active :目前有沒有正在運行中
    is-enable :開機時有沒有默認要啓用這個unit
    show:顯示某個 Unit 的所有底層參數
  • 單個unit狀態查看
    status:目前後面接的這個 unit 的狀態,會列出有沒有正在執行、開機默認執行否、登錄等信息等。
    is-active :目前有沒有正在運行中
    is-enable :開機時有沒有默認要啓用這個unit
    is-failed:啓動失敗的unit
    show:顯示某個 Unit 的所有底層參數
  • status顯示的unit的Loaded狀態
    enabled:這個daemon將在開機時被執行 
    disabled:這個daemon在開機時不會被執行 
    static:這個daemon不可以自己啓動(enable不可),不過可能會被其他的enabled的服務來喚醒(依賴的服務)
    mask:這個daemon無論如何都無法被啓動,因爲已經被強制註銷(非刪除)。可通過 systemctl unmask 方式改回原本狀態。
  • status顯示的unit的Active狀態
 active (running):正有一隻或多隻程序正在系統中執行的意思,舉例來說,正在執行中的vsftpd就是這種模式。 
 active (exited):僅執行一次就正常結束的服務,目前並沒有任何程序在系統中執行。
 active (waiting):正在執行當中,不過還再等待其他的事件才能繼續處理。
 inactive:這個服務目前沒有運行的意思。
  • 範例一:看看目前 atd 這個服務的狀態爲何?
    [ming@ming ~]$ systemctl status atd.service
    ● atd.service - Job spooling tools
       Loaded: loaded (/usr/lib/systemd/system/atd.service; enabled; vendor preset: enabled)
       Active: active (running) since 五 2020-03-06 18:21:42 CST; 2 days ago
     Main PID: 1264 (atd)
        Tasks: 1
       CGroup: /system.slice/atd.service
               └─1264 /usr/sbin/atd -f
    # Loaded:這行在說明,開機的時候這個 unit 會不會啓動,enabled 爲開機啓動,disabled 開機不會啓動
	# Active:現在這個 unit 的狀態是正在執行(running)或沒有執行 (dead)
  • 當前系統的所有unit狀態
    systemctl list-units # 列出正在運行的 Unit
    systemctl list-units --all # 列出所有Unit,包括沒有找到配置文件的或者啓動失敗的
    systemctl list-units --all --state=inactive # 列出所有沒有運行的 Unit
    systemctl list-units --failed # 列出所有加載失敗的 Unit
    systemctl list-units --type=service # 列出所有正在運行的、類型爲 service 的 Unit
  • 依賴關係
    systemctl list-dependencies [unit] #列出unit依賴
    systemctl list-dependencies --all [unit] #展開顯示依賴關係
    systemctl list-dependencies [unit] [--reverse] #反向查詢依賴,unit被誰依賴
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章