You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04下cgroups v2环境普通用户无法执行cgexec的问题

解决cgroups v2下普通用户无法使用cgexec的问题

原因

cgroups v2采用了更严格的权限控制模型,和v1的权限机制不兼容,原v1里cgcreate -t/-a的权限设置方式在v2中无法直接生效。

解决步骤

1. 确认系统使用cgroups v2

执行命令验证:

mount | grep cgroup2

若输出包含cgroup2 on /sys/fs/cgroup type cgroup2,则系统使用v2版本。

2. 启用目标控制器(以memory为例)

cgroups v2需要先在根cgroup中启用对应控制器,才能在子cgroup中使用:

sudo sh -c 'echo "+memory" >> /sys/fs/cgroup/cgroup.subtree_control'

如果需要永久生效,可将该命令加入/etc/rc.local或创建systemd服务。

3. 创建cgroup并设置正确权限

用cgcreate创建cgroup后,确保普通用户拥有该cgroup目录的读写权限:

sudo cgcreate -g memory:qqq
sudo chown -R caj:caj /sys/fs/cgroup/qqq

4. 验证普通用户执行权限

现在普通用户可正常使用cgexec:

cgexec -g memory:qqq ls

替代方案:使用systemd-run(推荐)

在systemd管理的系统中,推荐用systemd-run替代cgexec,无需手动调整cgroup权限:

systemd-run --user --scope -p MemoryMax=512M ls

该命令会自动为当前用户创建临时cgroup并限制内存,无需sudo权限。

内容的提问来源于stack exchange,提问作者Chris Jefferson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 12:35:25