我只是想知道范围是什么。然而,这(https://www.freedesktop.org/wiki/Software/systemd/ControlGroupInterface/)是一个很好的总结,同时它让我有点困惑。
文章的一部分:
“服务、范围和切片可以由管理员自由创建,也可以由程序动态创建。”
- 使用自定义范围有什么好处和目的?
- 创建范围(无需编程)的唯一方法是 systemd-run --scope?
我只是想知道范围是什么。然而,这(https://www.freedesktop.org/wiki/Software/systemd/ControlGroupInterface/)是一个很好的总结,同时它让我有点困惑。
文章的一部分:
“服务、范围和切片可以由管理员自由创建,也可以由程序动态创建。”
我之前在该主题上发布了此答案,看看是否可以为您解答。
简而言之,作用域是一种为进程树创建 cgroup 的方法,而 systemd 并不是进程本身的生成器(就像它总是为服务单元所做的那样。)
Using
systemd-run --scope
是启动新范围的一个很好的例子(并且进程本身将由 启动systemd-run
,而不是由 systemd PID 1。)从隔离的角度来看,类似于运行一个服务。您可以对特定进程组的 CPU、内存等资源进行记帐并施加限制。
使用服务以外的范围的好处是您可以从当前环境启动进程,而不必通过系统管理器启动它。特别是,这允许您在连接到本地上下文的范围内运行进程,例如 X11 服务器、SSH 连接或访问 ssh-agent 等。您可以移动任何进程(甚至是现有的) 到您创建的范围,而服务将始终启动新流程,并且通常使用经过消毒的环境。
还有其他方法可以启动范围。例如,使用该
busctl
工具是一种可能,但很难判断您是否将其视为“编程”......但这将允许您将现有流程移动到新创建的范围,这systemd-run
可以t自己做。我希望这些建议对您有所帮助。