是否必须在每次引导时设置cgroup中的进程?如果是这样,如何坚持下去?


9

我正在阅读有关使用cgroup设置进程限制的问题的答案。给定的样本设置了流程的限制(在示例中,sshd)。在答案中,过程的PID是手动设置的。对于我的目的,这将是不可接受的,我希望从给定应用程序启动的进程始终设置限制,无论它们何时启动,也不受启动多少此类进程的限制。

也许从示例中尚不清楚这将如何发生,因此也欢迎提供清晰的解释或链接。内核cgroups.txt中的示例似乎使用与上面已经给出的模型相同的模型。

Answers:


6

最简单的方法是使用systemd哪种方法可能对您负责sshd(取决于分发情况)。您可以在sshd单位文件中轻松配置限制。systemd无论如何,将所有服务放在单独的cgroup中。

没有systemd最简单的解决方案,可能是对sshd启动脚本进行了修改(请注意,它不会被更新覆盖;将其复制为其他名称并禁用原始脚本可能是一个好主意)。


有一个麻烦的应用程序,它的限制很容易清理,而不是sshd。只是在示例中使用了sshd。大概可以将cgroups应用于任何进程。脚本最终可能是最简单的解决方案。不过,看来cgroups将是一个很好的答案。
Casualunixer 2014年

@casualunixer您只需要为您的应用程序编写一个单元文件。您可以配置is,使其在启动时自动启动,也可以手动启动。
Hauke Laging

@laging,如果您可以在答案中提供示例单位文件,或类似地提供文档说明的指针,将不胜感激。
Casualunixer 2014年

@casualunixer这正是人们所期望的:man systemd导致man 5 systemd.unit导致man 5 systemd.service。在我的系统上,SSH文件为/usr/lib/systemd/system/sshd.service
Hauke Laging

嗯,考虑到我还没有安装systemd,即使这是此答案的主题,它也不是很明显。
Casualunixer 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.