日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
詳解Linuxsystemd

systemd 是 Linux 系統(tǒng)的一組基本構(gòu)建塊。它提供了一個(gè)以 PID 1 運(yùn)行的系統(tǒng)和服務(wù)管理器,并啟動(dòng)了系統(tǒng)的其余部分。 提供了積極的并行化功能,使用套接字和 D-Bus 激活來(lái)啟動(dòng)服務(wù),按需啟動(dòng)守護(hù)程序,使用Linux控制組跟蹤進(jìn)程。

“只有客戶(hù)發(fā)展了,才有我們的生存與發(fā)展!”這是創(chuàng)新互聯(lián)建站的服務(wù)宗旨!把網(wǎng)站當(dāng)作互聯(lián)網(wǎng)產(chǎn)品,產(chǎn)品思維更注重全局思維、需求分析和迭代思維,在網(wǎng)站建設(shè)中就是為了建設(shè)一個(gè)不僅審美在線,而且實(shí)用性極高的網(wǎng)站。創(chuàng)新互聯(lián)對(duì)成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、網(wǎng)站制作、網(wǎng)站開(kāi)發(fā)、網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站優(yōu)化、網(wǎng)絡(luò)推廣、探索永無(wú)止境。

使用控制組管理進(jìn)程

systemd 和 SystemV 之間的一個(gè)主要差異是管理進(jìn)程的方式。SystemV 將每個(gè)進(jìn)程視作一個(gè)獨(dú)立的實(shí)體。systemd 將相關(guān)的進(jìn)程集中到一個(gè)控制組,簡(jiǎn)寫(xiě)做 cgroup,并將控制組作為一個(gè)整體管理系統(tǒng)資源。這意味著資源能夠基于應(yīng)用管理,而不是由組成應(yīng)用的各個(gè)進(jìn)程來(lái)管理。

控制組的控制單元稱(chēng)作切片單元slice unit。切片是允許 systemd 以樹(shù)狀格式控制程序次序,從而簡(jiǎn)化管理的概念化。

查看控制組

我將從一些允許你查看不同類(lèi)型控制組信息的命令開(kāi)始。 systemctl status 命令顯示一個(gè)特定服務(wù)的切片信息,包括服務(wù)的切片。這個(gè)例子展示了 at 守護(hù)進(jìn)程:

[root@testvm1 ~]# systemctl status atd.service
● atd.service - Deferred execution scheduler
    Loaded: loaded (/usr/lib/systemd/system/atd.service; enabled; vendor preset: enabled)
    Active: active (running) since Wed 2020-09-23 12:18:24 EDT; 1 day 3h ago
      Docs: man:atd(8)
  Main PID: 1010 (atd)
     Tasks: 1 (limit: 14760)
    Memory: 440.0K
       CPU: 5ms
    CGroup: /system.slice/atd.service
            └─1010 /usr/sbin/atd -f
Sep 23 12:18:24 testvm1.both.org systemd[1]: Started Deferred execution scheduler.
[root@testvm1 ~]#

這是一個(gè)我感到 systemd 比 SystemV 和舊的初始化程序更好用的原因的絕佳示例。這里的信息遠(yuǎn)比 SystemV 能夠提供的豐富。CGroup 項(xiàng)包括的層級(jí)結(jié)構(gòu)中,system.slice 是 systemd(PID 1),atd.service 在下一層,是 system.slice 的一部分。CGroup 項(xiàng)的第二行還顯示了進(jìn)程 ID(PID)和啟動(dòng)守護(hù)進(jìn)程使用的命令。

systemctl 命令可以列出多個(gè)控制組項(xiàng),--all 參數(shù)列出所有的切片,包括當(dāng)前沒(méi)有激活的切片:

[root@testvm1 ~]# ps xawf -eo pid,user,cgroup,args
   PID USER     CGROUP                      COMMAND
     2 root     -                           [kthreadd]
     3 root     -                            \_ [rcu_gp]
     4 root     -                            \_ [rcu_par_gp]
     6 root     -                            \_ [kworker/0:0H-kblockd]
     9 root     -                            \_ [mm_percpu_wq]
    10 root     -                            \_ [ksoftirqd/0]
    11 root     -                            \_ [rcu_sched]
    12 root     -                            \_ [migration/0]
    13 root     -                            \_ [cpuhp/0]
    14 root     -                            \_ [cpuhp/1]

625406 root     -                            \_ [kworker/3:0-ata_sff]
625409 root     -                            \_ [kworker/u8:0-events_unbound]
     1 root     0::/init.scope              /usr/lib/systemd/systemd --switched-root --system --deserialize 30
   588 root     0::/system.slice/systemd-jo /usr/lib/systemd/systemd-journald
   599 root     0::/system.slice/systemd-ud /usr/lib/systemd/systemd-udevd
   741 root     0::/system.slice/auditd.ser /sbin/auditd
   743 root     0::/system.slice/auditd.ser  \_ /usr/sbin/sedispatch
   764 root     0::/system.slice/ModemManag /usr/sbin/ModemManager
   765 root     0::/system.slice/NetworkMan /usr/sbin/NetworkManager --no-daemon
   767 root     0::/system.slice/irqbalance /usr/sbin/irqbalance --foreground
   779 root     0::/system.slice/mcelog.ser /usr/sbin/mcelog --ignorenodev --daemon --foreground
   781 root     0::/system.slice/rngd.servi /sbin/rngd -f
   782 root     0::/system.slice/rsyslog.se /usr/sbin/rsyslogd -n

   893 root     0::/system.slice/sshd.servi sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
  1130 root     0::/user.slice/user-0.slice  \_ sshd: root [priv]
  1147 root     0::/user.slice/user-0.slice  |   \_ sshd: root@pts/0
  1148 root     0::/user.slice/user-0.slice  |       \_ -bash
  1321 root     0::/user.slice/user-0.slice  |           \_ screen
  1322 root     0::/user.slice/user-0.slice  |               \_ SCREEN
  1323 root     0::/user.slice/user-0.slice  |                   \_ /bin/bash
498801 root     0::/user.slice/user-0.slice  |                   |   \_ man systemd.resource-control
498813 root     0::/user.slice/user-0.slice  |                   |       \_ less
  1351 root     0::/user.slice/user-0.slice  |                   \_ /bin/bash
123293 root     0::/user.slice/user-0.slice  |                   |   \_ man systemd.slice
123305 root     0::/user.slice/user-0.slice  |                   |       \_ less
  1380 root     0::/user.slice/user-0.slice  |                   \_ /bin/bash
625412 root     0::/user.slice/user-0.slice  |                   |   \_ ps xawf -eo pid,user,cgroup,args
625413 root     0::/user.slice/user-0.slice  |                   |   \_ less
246795 root     0::/user.slice/user-0.slice  |                   \_ /bin/bash
625338 root     0::/user.slice/user-0.slice  |                       \_ /usr/bin/mc -P /var/tmp/mc-root/mc.pwd.246795
625340 root     0::/user.slice/user-0.slice  |                           \_ bash -rcfile .bashrc
  1218 root     0::/user.slice/user-1000.sl  \_ sshd: dboth [priv]
  1233 dboth    0::/user.slice/user-1000.sl      \_ sshd: dboth@pts/1
  1235 dboth    0::/user.slice/user-1000.sl          \_ -bash

  1010 root     0::/system.slice/atd.servic /usr/sbin/atd -f
  1011 root     0::/system.slice/crond.serv /usr/sbin/crond -n
  1098 root     0::/system.slice/lxdm.servi /usr/sbin/lxdm-binary
  1106 root     0::/system.slice/lxdm.servi  \_ /usr/libexec/Xorg -background none :0 vt01 -nolisten tcp -novtswitch -auth /var/run/lxdm/lxdm-:0.auth
370621 root     0::/user.slice/user-1000.sl  \_ /usr/libexec/lxdm-session
370631 dboth    0::/user.slice/user-1000.sl      \_ xfce4-session
370841 dboth    0::/user.slice/user-1000.sl          \_ /usr/bin/ssh-agent /bin/sh -c exec -l bash -c "/usr/bin/startxfce4"
370911 dboth    0::/user.slice/user-1000.sl          \_ xfwm4 --display :0.0 --sm-client-id 2dead44ab-0b4d-4101-bca4-e6771f4a8ac2
370930 dboth    0::/user.slice/user-1000.sl          \_ xfce4-panel --display :0.0 --sm-client-id 2ce38b8ef-86fd-4189-ace5-deec1d0e0952
370942 dboth    0::/user.slice/user-1000.sl          |   \_ /usr/lib64/xfce4/panel/wrapper-2.0 /usr/lib64/xfce4/panel/plugins/libsystray.so 6 23068680 systr
ay Notification Area Area where notification icons appear
370943 dboth    0::/user.slice/user-1000.sl          |   \_ /usr/lib64/xfce4/panel/wrapper-2.0 /usr/lib64/xfce4/panel/plugins/libpulseaudio-plugin.so 8 2306
8681 pulseaudio PulseAudio Plugin Adjust the audio volume of the PulseAudio sound system
370944 dboth    0::/user.slice/user-1000.sl          |   \_ /usr/lib64/xfce4/panel/wrapper-2.0 /usr/lib64/xfce4/panel/plugins/libxfce4powermanager.so 9 2306
8682 power-manager-plugin Power Manager Plugin Display the battery levels of your devices and control the brightness of your display
370945 dboth    0::/user.slice/user-1000.sl          |   \_ /usr/lib64/xfce4/panel/wrapper-2.0 /usr/lib64/xfce4/panel/plugins/libnotification-plugin.so 10 2
3068683 notification-plugin Notification Plugin Notification plugin for the Xfce panel
370948 dboth    0::/user.slice/user-1000.sl          |   \_ /usr/lib64/xfce4/panel/wrapper-2.0 /usr/lib64/xfce4/panel/plugins/libactions.so 14 23068684 acti
ons Action Buttons Log out, lock or other system actions
370934 dboth    0::/user.slice/user-1000.sl          \_ Thunar --sm-client-id 2cfc809d8-4e1d-497a-a5c5-6e4fa509c3fb --daemon
370939 dboth    0::/user.slice/user-1000.sl          \_ xfdesktop --display :0.0 --sm-client-id 299be0608-4dca-4055-b4d6-55ec6e73a324
370962 dboth    0::/user.slice/user-1000.sl          \_ nm-applet

關(guān)于這個(gè)數(shù)據(jù),第一個(gè)需要注意的是數(shù)據(jù)顯示了 UID 0(root)和 UID 1000 的用戶(hù)切片,UID 1000 是我登錄的用戶(hù)。這里列出了組成每個(gè)切片的切片部分,而不是服務(wù)。還說(shuō)明了每個(gè)用戶(hù)登錄時(shí)都會(huì)為其創(chuàng)建一個(gè)切片,這為將一個(gè)用戶(hù)的所有任務(wù)作為單個(gè)控制組項(xiàng)進(jìn)行管理提供了一種方式。

探索控制組的層次結(jié)構(gòu)

目前為止一切順利,但是控制組是分層的,所有的服務(wù)單元作為其中一個(gè)控制組的成員運(yùn)行。要查看這個(gè)層次結(jié)構(gòu)很簡(jiǎn)單,使用一個(gè)舊命令和 systemd 的一個(gè)新命令即可。

ps 命令可以用于映射進(jìn)程的和其所處的控制組層次。注意使用 ps 命令時(shí)需要指明想要的數(shù)據(jù)列。我大幅削減了下面命令的輸出數(shù)量,但是試圖保留足夠的數(shù)據(jù),以便你能夠?qū)ψ约合到y(tǒng)上的輸出有所感受:

[root@testvm1 ~]# systemctl -t slice --all
 UNIT                             LOAD   ACTIVE   SUB    DESCRIPTION                    
 -.slice                          loaded active   active Root Slice                      
 system-getty.slice               loaded active   active system-getty.slice              
 system-lvm2\x2dpvscan.slice      loaded active   active system-lvm2\x2dpvscan.slice    
 system-modprobe.slice            loaded active   active system-modprobe.slice          
 system-sshd\x2dkeygen.slice      loaded active   active system-sshd\x2dkeygen.slice    
 system-systemd\x2dcoredump.slice loaded inactive dead   system-systemd\x2dcoredump.slice
 system-systemd\x2dfsck.slice     loaded active   active system-systemd\x2dfsck.slice    
 system.slice                     loaded active   active System Slice                    
 user-0.slice                     loaded active   active User Slice of UID 0            
 user-1000.slice                  loaded active   active User Slice of UID 1000          
 user.slice                       loaded active   active User and Session Slice          
LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.
11 loaded units listed.
To show all installed unit files use 'systemctl list-unit-files'.
[root@testvm1 ~]#

你可以使用 systemd-cgls 命令查看整個(gè)層次結(jié)構(gòu),這個(gè)命令不需要任何的復(fù)雜參數(shù),更加簡(jiǎn)單。

我也大幅縮短了這個(gè)樹(shù)狀結(jié)構(gòu),但是保留了足夠多的輸出,以便你能夠了解在自己的系統(tǒng)上執(zhí)行這個(gè)命令時(shí)應(yīng)該看到的數(shù)據(jù)總量和條目類(lèi)型。我在我的一個(gè)虛擬機(jī)上執(zhí)行了這個(gè)命令,輸出大概有 200 行;我的主要工作站的輸出大概有 250 行。

[root@testvm1 ~]# systemd-cgls
Control group /:
-.slice
├─user.slice
│ ├─user-0.slice
│ │ ├─session-1.scope
│ │ │ ├─  1130 sshd: root [priv]
│ │ │ ├─  1147 sshd: root@pts/0
│ │ │ ├─  1148 -bash
│ │ │ ├─  1321 screen
│ │ │ ├─  1322 SCREEN
│ │ │ ├─  1323 /bin/bash
│ │ │ ├─  1351 /bin/bash
│ │ │ ├─  1380 /bin/bash
│ │ │ ├─123293 man systemd.slice
│ │ │ ├─123305 less
│ │ │ ├─246795 /bin/bash
│ │ │ ├─371371 man systemd-cgls
│ │ │ ├─371383 less
│ │ │ ├─371469 systemd-cgls
│ │ │ └─371470 less
│ │ └─user@0.service …
│ │   ├─dbus-broker.service
│ │   │ ├─1170 /usr/bin/dbus-broker-launch --scope user
│ │   │ └─1171 dbus-broker --log 4 --controller 12 --machine-id 3bccd1140fca488187f8a1439c832f07 --max-bytes 100000000000000 --max-fds 25000000000000 --max->
│ │   ├─gvfs-daemon.service
│ │   │ └─1173 /usr/libexec/gvfsd
│ │   └─init.scope
│ │     ├─1137 /usr/lib/systemd/systemd --user
│ │     └─1138 (sd-pam)
│ └─user-1000.slice
│   ├─user@1000.service …
│   │ ├─dbus\x2d:1.2\x2dorg.xfce.Xfconf.slice
│   │ │ └─dbus-:1.2-org.xfce.Xfconf@0.service
│   │ │   └─370748 /usr/lib64/xfce4/xfconf/xfconfd
│   │ ├─dbus\x2d:1.2\x2dca.desrt.dconf.slice
│   │ │ └─dbus-:1.2-ca.desrt.dconf@0.service
│   │ │   └─371262 /usr/libexec/dconf-service
│   │ ├─dbus-broker.service
│   │ │ ├─1260 /usr/bin/dbus-broker-launch --scope user
│   │ │ └─1261 dbus-broker --log 4 --controller 11 --machine-id

│   │ └─gvfs-mtp-volume-monitor.service
│   │   └─370987 /usr/libexec/gvfs-mtp-volume-monitor
│   ├─session-3.scope
│   │ ├─1218 sshd: dboth [priv]
│   │ ├─1233 sshd: dboth@pts/1
│   │ └─1235 -bash
│   └─session-7.scope
│     ├─370621 /usr/libexec/lxdm-session
│     ├─370631 xfce4-session
│     ├─370805 /usr/bin/VBoxClient --clipboard
│     ├─370806 /usr/bin/VBoxClient --clipboard
│     ├─370817 /usr/bin/VBoxClient --seamless
│     ├─370818 /usr/bin/VBoxClient --seamless
│     ├─370824 /usr/bin/VBoxClient --draganddrop
│     ├─370825 /usr/bin/VBoxClient --draganddrop
│     ├─370841 /usr/bin/ssh-agent /bin/sh -c exec -l bash -c "/usr/bin/startxfce4"
│     ├─370910 /bin/gpg-agent --sh --daemon --write-env-file /home/dboth/.cache/gpg-agent-info
│     ├─370911 xfwm4 --display :0.0 --sm-client-id 2dead44ab-0b4d-4101-bca4-e6771f4a8ac2
│     ├─370923 xfsettingsd --display :0.0 --sm-client-id 261b4a437-3029-461c-9551-68c2c42f4fef
│     ├─370930 xfce4-panel --display :0.0 --sm-client-id 2ce38b8ef-86fd-4189-ace5-deec1d0e0952
│     ├─370934 Thunar --sm-client-id 2cfc809d8-4e1d-497a-a5c5-6e4fa509c3fb --daemon
│     ├─370939 xfdesktop --display :0.0 --sm-client-id 299be0608-4dca-4055-b4d6-55ec6e73a324

└─system.slice
 ├─rngd.service
 │ └─1650 /sbin/rngd -f
 ├─irqbalance.service
 │ └─1631 /usr/sbin/irqbalance --foreground
 ├─fprintd.service
 │ └─303383 /usr/libexec/fprintd
 ├─systemd-udevd.service
 │ └─956 /usr/lib/systemd/systemd-udevd

 ├─systemd-journald.service
 │ └─588 /usr/lib/systemd/systemd-journald
 ├─atd.service
 │ └─1010 /usr/sbin/atd -f
 ├─system-dbus\x2d:1.10\x2dorg.freedesktop.problems.slice
 │ └─dbus-:1.10-org.freedesktop.problems@0.service
 │   └─371197 /usr/sbin/abrt-dbus -t133
 ├─sshd.service
 │ └─893 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
 ├─vboxservice.service
 │ └─802 /usr/sbin/VBoxService -f
 ├─crond.service
 │ └─1011 /usr/sbin/crond -n
 ├─NetworkManager.service
 │ └─765 /usr/sbin/NetworkManager --no-daemon
 ├─switcheroo-control.service
 │ └─787 /usr/libexec/switcheroo-control

這個(gè)樹(shù)狀視圖顯示了所有的用戶(hù)和系統(tǒng)切片,以及每個(gè)控制組內(nèi)正在運(yùn)行的服務(wù)和程序。注意叫作 scope(范圍)的單元,它將相關(guān)的程序組成一個(gè)管理單元,在上面列出的結(jié)果中就是 user-1000.slice。user-1000.slice/session-7.scope 控制組包含了 GUI 桌面程序?qū)哟谓Y(jié)構(gòu),以 LXDM 顯示管理器會(huì)話和其所有的子任務(wù)開(kāi)始,包括像 Bash 命令行解釋器和 Thunar GUI 文件管理器之類(lèi)的程序。

配置文件中不定義范圍單元,而是作為啟動(dòng)相關(guān)程序組的結(jié)果程序化生成的。范圍單元不創(chuàng)建或啟動(dòng)作為控制組的組成部分運(yùn)行的進(jìn)程。范圍內(nèi)的所有進(jìn)程都是平等的,沒(méi)有內(nèi)部的層次結(jié)構(gòu)。一個(gè)范圍的生命周期在第一個(gè)進(jìn)程創(chuàng)建時(shí)開(kāi)始,在最后一個(gè)進(jìn)程銷(xiāo)毀時(shí)結(jié)束。

在你的桌面打開(kāi)多個(gè)窗口,比如終端模擬器、LibreOffice、或者任何你想打開(kāi)的,然后切換到一個(gè)可用的虛擬控制臺(tái),啟動(dòng)類(lèi)似 top 或 Midnight Commander 的程序。在主機(jī)運(yùn)行 systemd-cgls 命令,留意整體的層次結(jié)構(gòu)和范圍單元。

systemd-cgls 命令提供的控制組層次結(jié)構(gòu)表示(以及組成控制組單元的細(xì)節(jié)),比我見(jiàn)過(guò)的其他任何指令都要完整。和 ps 命令提供的輸出相比,我喜歡 systemd-cgls 命令更簡(jiǎn)潔的樹(shù)形表示。


新聞名稱(chēng):詳解Linuxsystemd
網(wǎng)頁(yè)鏈接:http://www.5511xx.com/article/cdhiodg.html