![systemd 范围有什么用处?](https://linux22.com/image/1064512/systemd%20%E8%8C%83%E5%9B%B4%E6%9C%89%E4%BB%80%E4%B9%88%E7%94%A8%E5%A4%84%EF%BC%9F.png)
我只是想知道范围是什么。然而这(https://www.freedesktop.org/wiki/Software/systemd/ControlGroupInterface/)总结得非常好,但同时对我来说还是有点困惑。
文章部分内容:
“服务、范围和切片可以由管理员自由创建,也可以由程序动态创建。”
- 使用自定义范围有什么好处和目的?
- 创建范围的唯一方法(无需编程)是 systemd-run --scope?
答案1
我之前发过这个答案关于这个话题,请查看是否能解答你的疑问。
简而言之,范围是一种为进程树创建 cgroup 的方式,而 systemd 并不是生成进程本身的方式(就像它对服务单元所做的那样)。
使用systemd-run --scope
是启动新范围的一个很好的例子(并且进程本身将由启动systemd-run
,而不是由 systemd PID 1 启动。)
使用自定义范围有什么好处和目的?
从隔离的角度来看,类似于运行服务。您可以对特定进程组进行统计并对 CPU、内存等资源进行限制。
使用服务以外的范围的好处是,您可以从当前环境启动进程,而不必通过系统管理器启动它。特别是,这允许您在连接到本地上下文的范围(例如 X11 服务器、SSH 连接或可以访问 ssh 代理等)中运行进程。您可以将任何进程(甚至是现有进程)移动到您创建的范围,而服务将始终启动新进程,并且通常具有经过清理的环境。
创建范围(无需编程)的唯一方法是
systemd-run --scope
?
还有其他方法可以启动范围。例如,使用该busctl
工具是一种可能性,但很难说您是否会将其视为“编程”……但这将允许您将现有流程移动到新创建的范围,而这systemd-run
本身无法完成。
我希望您发现这些指示很有用。