很久以前,我曾经cgmanager
将所有浏览器(Opera、Firefox、Chrome)放在一个 cgroup 中,并为该组设置最大 RAM 使用限制。
然而,modernsystemd
确实不希望其他程序干扰 cgroups那么如何使用现代 Ubuntu 进行配置?
基本上,我想问如何配置列出的选定进程,systemctl status session-$XDG_SESSION_ID.scope
以便由 systemd 自动移动到具有特殊限制的用户定义组?例如,我想定义如果进程二进制文件是
/usr/bin/firefox
或/opt/google/chrome/chrome
那么它应该被移动到我的自定义用户 cgroup 中mybrowsers
。
我也在寻找一种不依赖桌面环境或窗口管理器执行此操作的通用解决方案(我知道现代 Gnome 应该自动创建一些组)。我想我可以编写一个程序来监视新进程,然后使用 systemd API 移动它们,但我认为 systemd 一定有办法做到这一点,对吧?任何依赖于轮询进程列表的选项似乎都是最好的解决方法。
我正在寻找一种尽可能完全由用户定义的解决方案。我知道可以通过这种方式实现,systemd-run
但这似乎是一种漏洞百出的解决方案,因为很容易以“错误”的方式启动程序,然后systemd-run
被跳过。