systemd 范围和 systemd 切片之间有什么区别?

Rob*_*mer 17 systemd

systemd 范围和 systemd 切片之间有什么区别?

两者都是为了资源管理。但是仅使用切片可以做什么以及仅使用范围可以做什么?

Koo*_*opa 24

    \n
  • 服务是一种单元,它指示 systemd 如何启动进程,由systemd.exec指定。服务并不是从 systemd 生成进程的唯一机制,但它们的独特之处在于能够任意执行此操作,而无需绑定到设备或套接字。
  • \n
  • 作用域是一种单元,它指示 systemd 如何对非自身启动的进程进行分组。
  • \n
\n

正如您所看到的,服务和范围都是对流程进行分组的基元。值得注意的几个差异是:

\n
    \n
  • 作用域不是由单元文件声明的,而是使用systemd 的 dbus API以编程方式创建的。
  • \n
  • 服务有一个主进程的概念,服务的生命周期就是该进程的生命周期。对于作用域,单元的生命周期与“作用域中至少存在一个进程”相关。
  • \n
\n

现在介绍第三种单位类型:

\n
    \n
  • 切片是一种对服务、作用域和其他切片进行分组的单元。\n
      \n
    • 为什么不使用范围呢?因为作用域管理进程,而不是其他 systemd 单元。此外,范围不能用文件来声明,这是可取的。
    • \n
    • 为什么不使用服务来代替呢?嗯,服务本身实际上能够封装作用域和切片(稍后我们将看到它的实用性),所以这不是答案。我的答案是,服务在语义上与正在执行的某些内容绑定在一起。使用切片可以将 systemd 单元分组在一起,而不必执行进程。
    • \n
    \n
  • \n
\n

服务、作用域和切片是支持资源控制的三种 systemd 单元类型。这包括 systemd 与 Linux 内核的cgroups API的接口。这三个都很有用,并且所有三个都可以在任何默认的 systemd 系统上使用。举一些如何使用它们的例子:

\n
    \n
  • 为了定期运行一个进程,或者为了响应 systemd 生态系统中某个地方的刺激,您需要使用一项服务 - 您可能对此很熟悉。
  • \n
  • 当寻求控制多个服务的相对资源使用情况时,您可以使用切片,如本文所示。如果它只是一项服务,那么在该服务单元中配置资源限制就足够了。然而,对于那篇文章,切片是正确的,因为:\n
      \n
    • 对于此层次结构 \xe2\x80\x94 的“父级”,即,将服务分组在一起的单元 \xe2\x80\x94 没有任何要执行的内容,因此父服务不适用(而且,我\ 不确定 systemd 是否提供了一种对常规服务单元进行分组的方法)。
    • \n
    • 范围用于对不是由 systemd 生成的进程进行分组。在这里,我们能够使用服务单元生成进程。重申一下,如果您使用服务来生成进程,则范围是无关紧要的
    • \n
    \n
  • \n
\n

要对系统进行更全面的了解:

\n
    \n
  • systemd 进程本身位于根切片下的作用域下,因为它不能真正作为服务存在。
  • \n
  • 从广义上讲,系统分为system.slice系统服务切片和user.slice用户切片,最终包含用户进程。
  • \n
  • 当用户登录(例如通过图形会话、终端或 SSH)时,systemd-loginctl.service设置以下内容:\n
      \n
    • 模板user@.service在用户的切片内实例化。该服务启动 systemd 用户实例。
    • \n
    • 里面 user@.service是一个session.slice为用户服务的地方。这是服务用于对其他单元进行分组的一种情况这是可能的,因为它启动一个进程,同时仍然对其下面的其他单元进行分组是合乎逻辑的。
    • \n
    \n
  • \n
\n


Rob*_*mer 1

它看起来有点像资源管理树中的文件和目录:

\n
    \n
  • 服务、切片和范围代表目录
  • \n
  • 进程(带有 PID 的事物)代表文件
  • \n
  • 切片不能包含文件,只能包含其他目录\n
      \n
    • 即切片不直接启动进程,它们下面有切片、作用域或服务
    • \n
    \n
  • \n
  • 服务和作用域只能位于 \xe2\x80\x9cslice 目录\xe2\x80\x9d 下,而不是 \xe2\x80\x9cservice 或作用域目录\xe2\x80\x9d\n
      \n
    • 因此,目录树的形状仅由切片决定
    • \n
    \n
  • \n
\n

链接:

\n\n