搜索

22.4. cgroups 的 systemd 层次结构概述

download PDF

在后端,systemd 系统和服务管理器使用 slicescope,以及 service 单元来整理和构建控制组中的进程。您可以通过创建自定义单元文件或使用 systemctl 命令来进一步修改此层次结构。另外,systemd 会在 /sys/fs/cgroup/ 目录中自动挂载重要内核资源控制器的层次结构。

对于资源控制,您可以使用以下三种 systemd 单元类型:

Service

systemd 根据单元配置文件启动的一个进程或一组进程,。

服务封装指定的进程,以便它们可以作为一个集启动和停止。服务使用以下方法命名:

<name>.service
影响范围

外部创建的一组进程。范围封装通过 fork() 函数由任意进程启动和停止的进程,然后在运行时由 systemd 注册。例如,用户会话、容器和虚拟机被视为范围。范围命名如下:

<name>.scope
slice

一组分级组织的单元。片段组织了一个分级,其中放置范围和服务。

实际的进程包含在范围或服务中。slice 单元的每个名称对应层次结构中的位置的路径。

短划线(-)字符充当路径组件与 -.slice root 片段中片段的分隔符。在以下示例中:

<parent-name>.slice

parent-name.sliceparent.slice 的子片,它是 -.slice root 片段的子片。parent-name.slice 拥有自己的子片,名为 parent-name-name2.slice 等。

servicescopeslice 单元直接映射到控制组层次结构中的对象。激活这些单元后,它们直接映射到从单元名称构建的控制组路径。

以下是控制组群分级的缩写示例:

Control group /:
-.slice
├─user.slice
│ ├─user-42.slice
│ │ ├─session-c1.scope
│ │ │ ├─ 967 gdm-session-worker [pam/gdm-launch-environment]
│ │ │ ├─1035 /usr/libexec/gdm-x-session gnome-session --autostart /usr/share/gdm/greeter/autostart
│ │ │ ├─1054 /usr/libexec/Xorg vt1 -displayfd 3 -auth /run/user/42/gdm/Xauthority -background none -noreset -keeptty -verbose 3
│ │ │ ├─1212 /usr/libexec/gnome-session-binary --autostart /usr/share/gdm/greeter/autostart
│ │ │ ├─1369 /usr/bin/gnome-shell
│ │ │ ├─1732 ibus-daemon --xim --panel disable
│ │ │ ├─1752 /usr/libexec/ibus-dconf
│ │ │ ├─1762 /usr/libexec/ibus-x11 --kill-daemon
│ │ │ ├─1912 /usr/libexec/gsd-xsettings
│ │ │ ├─1917 /usr/libexec/gsd-a11y-settings
│ │ │ ├─1920 /usr/libexec/gsd-clipboard
…​
├─init.scope
│ └─1 /usr/lib/systemd/systemd --switched-root --system --deserialize 18
└─system.slice
  ├─rngd.service
  │ └─800 /sbin/rngd -f
  ├─systemd-udevd.service
  │ └─659 /usr/lib/systemd/systemd-udevd
  ├─chronyd.service
  │ └─823 /usr/sbin/chronyd
  ├─auditd.service
  │ ├─761 /sbin/auditd
  │ └─763 /usr/sbin/sedispatch
  ├─accounts-daemon.service
  │ └─876 /usr/libexec/accounts-daemon
  ├─example.service
  │ ├─ 929 /bin/bash /home/jdoe/example.sh
  │ └─4902 sleep 1
  …​

上面的例子显示,服务和范围包含进程,并放置在不含自己进程的片段中。

其他资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.