日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

linux 系統進程管理工具systemd詳解(systemctl命令、創建自己的systemd服務)

瀏覽:409日期:2023-03-07 14:40:41
目錄
  • linux systemd
    • 什么是 systemd
      • systemd 特點
      • unit(單元)
      • systemd unit目錄
      • Unit 和 Target
      • Unit 文件結構
  • Linux命令——systemctl
    • 參考

      linux systemd

      什么是 systemd

      Linux 系統在啟動過程中,內核完成初始化以后,由內核第一個啟動的程序便是 init 程序,路徑為 /sbin/init(為一個軟連接,鏈接到真實的 init 進程),其 PID 為1,它為系統里所有進程的“祖先”,Linux 中所有的進程都由 init 進程直接或間接進行創建并運行,init 進程以守護進程的方式存在,負責組織與運行系統的相關初始化工作,讓系統進入定義好的運行模式,如命令行模式或圖形界面模式。

      Systemd(系統管理守護進程),最開始以GNU GPL協議授權開發,現在已轉為使用GNU LGPL協議,它是如今討論最熱烈的引導和服務管理程序。如果你的Linux系統配置為使用Systemd引導程序,它取替傳統的SysV init,啟動過程將交給systemd處理。Systemd的一個核心功能是它同時支持SysV init的后開機啟動腳本。

      systemd是目前Linux系統上主要的系統守護進程管理工具,由于init一方面對于進程的管理是串行化的,容易出現阻塞情況,另一方面init也僅僅是執行啟動腳本,并不能對服務本身進行更多的管理。所以從CentOS 7開始也由systemd取代了init作為默認的系統進程管理工具

      systemd 是內核啟動后的第一個用戶進程,PID 為1,是所有其它用戶進程的父進程。

      systemd 特點

      • 最新系統都采用systemd管理(RedHat7,CentOS7,Ubuntu20.04…)
      • CentOS7 支持開機并行啟動服務,顯著提高開機啟動效率
      • CentOS7關機只關閉正在運行的服務,而CentOS6,全部都關閉一次。
      • CentOS7服務的啟動與停止不再使用腳本進行管理,也就是/etc/init.d下不在有腳本。
      • CentOS7使用systemd解決原有模式缺陷,比如原有service不會關閉程序產生的子進程

      unit(單元)

      系統初始化需要做的事情非常多。需要啟動后臺服務,比如啟動 ssh 服務;需要做配置工作,比如掛載文件系統。這個過程中的每一步都被 systemd 抽象為一個配置單元,即 unit。可以認為一個服務是一個配置單元,一個掛載點是一個配置單元,一個交換分區的配置是一個配置單元等等。

      下面是一些常見的 unit 類型:

      • service :代表一個后臺服務進程,比如 MySQLd。這是最常用的一類。
      • socket :此類配置單元封裝系統和互聯網中的一個套接字 。當下,systemd 支持流式、數據報和 連續包的 AF_INET、AF_INET6、AF_UNIX socket 。每一個套接字配置單元都有一個相應的服務配置單元 。相應的服務在第一個"連接"進入套接字時就會啟動(例如:nscd.socket 在有新連接后便啟動 nscd.service)。
      • device :此類配置單元封裝一個存在于 Linux 設備樹中的設備。每一個使用 udev 規則標記的設備都將會在 systemd 中作為一個設備配置單元出現。
      • mount :此類配置單元封裝文件系統結構層次中的一個掛載點。Systemd 將對這個掛載點進行監控和管理。比如可以在啟動時自動將其掛載;可以在某些條件下自動卸載。Systemd 會將 /etc/fstab 中的條目都轉換為掛載點,并在開機時處理。
      • automount :此類配置單元封裝系統結構層次中的一個自掛載點。每一個自掛載配置單元對應一個掛載配置單元 ,當該自動掛載點被訪問時,systemd 執行掛載點中定義的掛載行為。
      • swap:和掛載配置單元類似,交換配置單元用來管理交換分區。用戶可以用交換配置單元來定義系統中的交換分區,可以讓這些交換分區在啟動時被激活。
      • target :此類配置單元為其他配置單元進行邏輯分組。它們本身實際上并不做什么,只是引用其他配置單元而已。這樣便可以對配置單元做一個統一的控制。這樣就可以實現大家都已經非常熟悉的運行級別概念。比如想讓系統進入圖形化模式,需要運行許多服務和配置命令,這些操作都由一個個的配置單元表示,將所有這些配置單元組合為一個目標(target),就表示需要將這些配置單元全部執行一遍以便進入目標所代表的系統運行狀態。 (例如:multi-user.target 相當于在傳統使用 SysV 的系統中運行級別 5)
      • timer:定時器配置單元用來定時觸發用戶定義的操作,這類配置單元取代了 atd、crond 等傳統的定時服務。
      • snapshot :與 target 配置單元相似,快照是一組配置單元。它保存了系統當前的運行狀態。
      • path:文件系統中的一個文件或目錄。
      • scope:用于 cgroups,表示從 systemd 外部創建的進程。
      • slice:用于 cgroups,表示一組按層級排列的單位。slice 并不包含進程,但會組建一個層級,并將 scope 和 service 都放置其中。
        **每個配置單元都有一個對應的配置文件,系統管理員的任務就是編寫和維護這些不同的配置文件,比如一個 MySQL 服務對應一個 mysql.service 文件。**
      
      • .automount:用于控制自動掛載文件系統,相當于 SysV-init 的 autofs 服務
      • .device:對于 /dev 目錄下的設備,主要用于定義設備之間的依賴關系
      • .mount:定義系統結構層次中的一個掛載點,可以替代過去的 /etc/fstab 配置文件
      • .path:用于監控指定目錄或文件的變化,并觸發其它 Unit 運行
      • .scope:這種 Unit 文件不是用戶創建的,而是 Systemd 運行時產生的,描述一些系統服務的分組信息
      • .service:封裝守護進程的啟動、停止、重啟和重載操作,是最常見的一種 Unit 文件
      • .slice:用于表示一個 CGroup 的樹,通常用戶不會自己創建這樣的 Unit 文件
      • .snapshot:用于表示一個由 systemctl snapshot 命令創建的 Systemd Units 運行狀態快照
      • .socket:監控來自于系統或網絡的數據消息,用于實現基于數據自動觸發服務啟動
      • .swap:定義一個用戶做虛擬內存的交換分區
      • .target:用于對 Unit 文件進行邏輯分組,引導其它 Unit 的執行。它替代了 SysV-init 運行級別的作用,并提供更靈活的基于特定設備事件的啟動方式
      • .timer:用于配置在特定時間觸發的任務,替代了 Crontab 的功能

      systemd unit目錄

      Unit 文件按照 Systemd 約定,應該被放置指定的三個系統目錄之一中。這三個目錄是有優先級的,如下所示,越靠上的優先級越高。因此,在三個目錄中有同名文件的時候,只有優先級最高的目錄里的那個文件會被使用。

      /etc/systemd/system:系統或用戶自定義的配置文件
      /run/systemd/system:軟件運行時生成的配置文件
      /usr/lib/systemd/system:系統或**第三方軟件安裝時添加的配置文件**。

      Systemd 默認從目錄 /etc/systemd/system/ 讀取配置文件。但是,里面存放的大部分文件都是符號鏈接,指向目錄 /usr/lib/systemd/system/,真正的配置文件存放在那個目錄。

      Unit 和 Target

      Target 就是一個 Unit 組,包含許多相關的 Unit 。

      Unit 是 Systemd 管理系統資源的基本單元,可以認為每個系統資源就是一個 Unit,并使用一個 Unit 文件定義。在 Unit 文件中需要包含相應服務的描述、屬性以及需要運行的命令。

      Unit 文件結構

      systemd.service 中文手冊
      參考URL:

      每一個服務以.service結尾,一般會分為3部分:[Unit]、[Service]和[Install]

      • [Unit]:記錄unit文件的通用信息。
      • [Service]:記錄Service的信息
      • [Install]:安裝信息。

      把自己的服務使用systemd管理需要書寫*.service文件,如服務名xxx.service,下面我們介紹一下*.service文件里面具體的內容。
      進入目錄 cd /etc/systemd/system/

      cat << EOF > /etc/systemd/system/xxx.service
      [Unit]
      Description=Xxx Service
      Documentation=https://www.secureweb3.com/
      After=network-online.target
      Wants=network-online.target
      
      [Service]
      User=root
      CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
      AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
      NoNewPrivileges=true
      ExecStart=+$APPROOT/xxx
      Restart=on-failure
      RestartPreventExitStatus=23
      
      [Install]
      WantedBy=multi-user.target
      EOF
      
      
      • Description:描述這個 Unit 文件的信息
      • Documentation:指定服務的文檔,可以是一個或多個文檔的 URL 路徑
      • Requires:依賴的其它 Unit 列表,列在其中的 Unit 模板會在這個服務啟動時的同時被啟動。并且,如果其中任意一個服務啟動失敗,這個服務也會被終止
      • Wants:與 Requires 相似,但只是在被配置的這個 Unit 啟動時,觸發啟動列出的每個 Unit 模塊,而不去考慮這些模板啟動是否成功
      • After:與 Requires 相似,但是在后面列出的所有模塊全部啟動完成以后,才會啟動當前的服務
      • network-online.target是主動等待直到網絡“啟動”的target,其中“啟動”的定義

      network.target代表有網路,network-online.target代表一個連通著的網絡。

      [service]

      • User: 指定用戶運行CapabilityBoundingSet: 能力邊界設置,可以設置哪些能力
      • capability

      美: [?ke?p??b?l?ti]
      英: [.ke?p?’b?l?ti]
      n. 能力;才能;(國家的)軍事力量
      網絡 性能;容量;才干

      bound
      美: [ba?nd]
      英: [ba?nd]
      n. 邊界;跳躍;范圍;界限
      v. 跳躍;鄰接;“bind”的過去分詞和過去式;限制
      adj. 打算;要往(某處)去的;被束縛的;理應…的
      網絡 彈跳;邊邊界框;彈跳力

      CAP_NET_ADMIN
      執行各種與網絡相關的操作:
      * 接口配置;
      * 管理 IP 防火墻、偽裝和
      會計;
      * 修改路由表;
      *綁定到任何地址以進行透明代理;
      * 設置服務類型 (TOS);
      * 清除驅動程序統計信息;
      * 設置混雜模式;
      *啟用多播;
      * 使用setsockopt(2)設置以下套接字選項:
      SO_DEBUG、SO_MARK、SO_PRIORITY(對于優先級外
      范圍 0 到 6)、SO_RCVBUFFORCE和SO_SNDBUFFORCE。

         CAP_NET_BIND_SERVICE
        將套接字綁定到 Internet 域特權端口(端口
        小于 1024 的數字)。
      • NoNewPrivileges=true
      • ExecStart: 定義啟動進程時執行的命令
      • Restart= 設為on-failure, on-watchdog, on-abnormal, always 之一, 可以實現在失敗狀態下的自動重啟該服務。
      • RestartPreventExitStatus中列出的退出碼或者信號永遠不會導致該服務被重啟。

      [Install]

      • WantedBy字段:表示該服務所在的 Target。

      Target的含義是服務組,表示一組服務。WantedBy=multi-user.target指的是,sshd 所在的 Target 是multi-user.target。

      這個設置非常重要,因為執行systemctl enable sshd.service命令時,sshd.service的一個符號鏈接,就會放在/etc/systemd/system目錄下面的multi-user.target.wants子目錄之中。

      一般來說,常用的 Target 有兩個:一個是multi-user.target,表示多用戶命令行狀態;另一個是graphical.target,表示圖形用戶狀態,它依賴于multi-user.target。

      Linux命令——systemctl

      Systemd 入門教程:實戰篇
      參考URL: https://www.jb51.net/article/269756.htm
      Linux命令——systemctl
      參考URL:https://www.jb51.net/article/269756.htm

      systemd對應的進程管理命令就是systemctl。

      systemctl   [command]    [unit](配置的應用名稱)
       
      command可選項· 
      start:啟動指定的unit systemctl start nginx
      stop:關閉指定的unit  systemctl stop nginx
      restart:重啟指定unit systemctl restart nginx
      reload:重載指定unit  systemctl reload nginx
      enable:系統開機時自動啟動指定unit,前提是配置文件中有相關配置 systemctl enable nginx
      disable:開機時不自動運行指定unit  systemctl disable nginx
      status:查看指定unit當前運行狀態   systemctl status nginx

      參考

      Systemd 入門教程:實戰篇
      參考URL: https://www.jb51.net/article/269756.htm

      到此這篇關于linux 系統進程管理工具systemd詳解(systemctl命令、創建自己的systemd服務)的文章就介紹到這了,更多相關linux 進程管理工具systemd內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

      標簽: Linux Apache
      日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
      久久国产日韩| 久久成人国产| 激情偷拍久久| 快播电影网址老女人久久| 国产精品密蕾丝视频下载| 蜜桃视频在线观看一区| 国产一在线精品一区在线观看| 成人国产综合| 欧美国产美女| 日韩中文视频| 国产不卡人人| 日韩欧美精品一区| 国产一区日韩| 欧美韩日一区| 日韩电影二区| 国产日产精品一区二区三区四区的观看方式 | 欧美一级一区| 国产精品天堂蜜av在线播放| 91欧美精品| 国产在线一区不卡| 理论片午夜视频在线观看| 色婷婷精品视频| 99成人在线| 日韩精品免费观看视频| 欧美黑人做爰爽爽爽| 国产日韩欧美在线播放不卡| 欧美激情在线精品一区二区三区| 精品亚洲二区| 欧美精选一区二区三区| 免费日本视频一区| 国产精品第一| 亚洲黄色免费av| 影院欧美亚洲| 国产精品亚洲人成在99www| 国产精品久久久久蜜臀| 国产美女精品| 久久99影视| 欧美日韩国产精品一区二区亚洲| 一区二区高清| 中文在线免费视频| 欧美不卡视频| 国产欧美日韩影院| 一区二区三区视频免费观看| 日韩超碰人人爽人人做人人添| 成人日韩在线观看| 欧美日韩一区二区高清| 欧美va天堂在线| 欧美日韩一区二区三区不卡视频 | 久久男人av| 亚洲一区亚洲| 欧美好骚综合网| 日韩影院免费视频| 日本不良网站在线观看| 日本不卡高清| 不卡在线一区| 97精品中文字幕| 国产精品www.| 日韩精品视频一区二区三区| 黄色在线一区| 美女久久久久| 福利精品一区| 麻豆久久久久久久| 欧美亚洲福利| 日韩和欧美一区二区三区| 在线亚洲欧美| 日韩视频不卡| 成人自拍av| 日本免费一区二区三区四区| 欧美经典一区| 国产精品白浆| 国产精品一区毛片| 国产精品最新自拍| 国产精品久久久久久久久久妞妞| 亚洲精选久久| 日韩久久99| 国产日韩欧美三区| 国产精品视频一区二区三区| 欧美日韩亚洲一区二区三区在线| 日本午夜精品久久久久| 欧美精品三级在线| 国产美女久久| 精品国产精品国产偷麻豆| 亚洲2区在线| 欧美日韩午夜电影网| 日本午夜精品一区二区三区电影 | 99久久夜色精品国产亚洲1000部| 国产欧美日韩综合一区在线播放| 亚洲久草在线| 国产伦一区二区三区| 精品免费视频| 久久精品观看| 亚洲一区二区三区无吗| 欧美精品国产白浆久久久久| 日韩精品一区二区三区中文字幕| 美美哒免费高清在线观看视频一区二区| 亚洲深深色噜噜狠狠爱网站| 欧美一区二区三区久久精品| 美女视频免费精品| 国内精品99| 国产精品久久久久久av公交车| 92国产精品| 中文字幕中文字幕精品| 久久99精品久久久久久园产越南| 日韩精品中文字幕第1页| 日本欧美在线看| 羞羞答答国产精品www一本| 美腿丝袜亚洲三区| 黄色日韩在线| 国产亚洲观看| 伊人久久大香线蕉av不卡| 日本va欧美va精品| 欧美日韩中文一区二区| 国产精品午夜av| 亚洲在线电影| 在线天堂中文资源最新版| 蜜臀a∨国产成人精品| 黄色aa久久| 久久av超碰| 亚洲欧美专区| 免费在线看一区| 欧美1区2区3区| 久久久久久久久99精品大| 美日韩一区二区三区| 免费久久久久久久久| 国产成人精品一区二区三区视频 | 91精品电影| 日韩大片免费观看| 91欧美日韩| 91一区二区三区四区| 国产精品超碰| 亚洲精品看片| 亚洲免费观看高清完整版在线观| 国产亚洲在线观看| 国产精品一区二区美女视频免费看 | 蜜臀av性久久久久蜜臀aⅴ四虎| 国产成人精品福利| 少妇高潮一区二区三区99| 在线日韩成人| 自拍日韩欧美| 国产成人免费精品| 麻豆精品在线观看| 日韩中文欧美在线| 91精品亚洲| 国产美女撒尿一区二区| 日本不卡视频在线观看| 美女久久网站| 在线亚洲成人| 日韩在线播放一区二区| 国产亚洲综合精品| 国产精品美女| 石原莉奈一区二区三区在线观看| 久久亚洲精品伦理| 免费精品视频最新在线| 亚洲欧美日本国产专区一区| 在线亚洲自拍| 婷婷精品在线观看| 少妇精品久久久| 69堂免费精品视频在线播放| 天堂俺去俺来也www久久婷婷| 久久高清免费观看| 精品精品久久| 久久久久蜜桃| 怡红院精品视频在线观看极品| 在线国产一区二区| 久久一区精品| 电影亚洲精品噜噜在线观看| 香蕉人人精品| 亚洲三级毛片| 久久精品主播| 亚洲精品系列| 久久99精品久久久久久园产越南| 国产欧美高清| 亚洲一区资源| 视频精品一区二区| 国产精品午夜av| 欧美日韩视频网站| 欧美亚洲免费| 免费观看久久av| 日本aⅴ亚洲精品中文乱码| 久久精品国产68国产精品亚洲| 免费久久精品视频| 98精品视频| 欧美日韩18| 国产一区二区三区自拍| **爰片久久毛片| 91精品亚洲| 男人的天堂亚洲一区| 精品视频一区二区三区四区五区| av亚洲在线观看| 99成人在线视频| 国产精品视频一区二区三区四蜜臂| 99久久激情| 国产精品对白| 国产精品自拍区| 石原莉奈在线亚洲三区| 一本大道色婷婷在线| 亚洲成人av观看| 精品视频在线观看网站| 亚洲欧美久久精品| 黑人精品一区|