1 问题产生原因
测试背景:
测试某云产品agent进程不受cgroup文件的影响,即云产品进程文件被破坏/删除的情况下,服务进程正常工作。
测试思路:
- 删除cgroup的subsystem的目录文件;
- 修改该进程下的某些文件,破坏内容;
引出问题:
-
删除cgroup的subsystem的任意目录文件,报rm: cannot remove
‘test/test.sh/cpu.rt_period_us’: Operation not permitted,如下图所示:
-
修改该进程下的文件,显示文件只读,不可修改
2 解决方法
借助libcgroup工具删除目录
安装libcgroup工具
使用 libcgroup 工具前,请先安装 libcgroup 和 libcgroup-tools 数据包
redhat系统安装
[root@root cgroup]# yum install libcgroup
[root@root cgroup]# yum install libcgroup-tools
ubuntu系统安装:
root@dbaudit-ubuntu:# apt-get install cgroup-bin
验证是否安装成功
[root@CCC test]# cgdelete -h
操作步骤:
1、进入到cgroup子系统目录下:
[root@CCC cgroup]# cd /sys/fs/cgroup/
2、选择memory子系统,新建一个cgroup,比如test
3、使用cgdelete删除tests目录文件
[root@CCC cgroup]# cgdelete cpu:/test/
4、查看是否删除成功;
5、查看业务是否受影响。