SLES 12卸载besclient后残留cgroup服务文件无法删除求助
解决SLES 12中besclient服务卸载后cgroup残留文件无法删除的问题
首先得明确:你看到的/sys/fs/cgroup/下的besclient.service文件不是磁盘上的普通文件,它们是Linux cgroup(控制组)虚拟文件系统里的条目,由内核和systemd共同维护,所以直接用rm -rf删除肯定会失败——哪怕是root权限也不行,因为这些文件的生命周期和进程、systemd服务状态绑定。
下面是一步步的解决方法:
1. 彻底清理残留的besclient进程
先检查是否还有漏网的besclient进程在占用cgroup:
ps aux | grep besclient
如果输出里有除了grep本身之外的进程,用kill -9强制终止:
kill -9 <进程PID> # 或者批量杀掉所有相关进程 pkill -9 besclient
2. 让systemd重新加载配置并清理失效服务
卸载besclient后,systemd可能还缓存着旧的服务信息,执行以下命令刷新:
systemctl daemon-reload
然后重置失效的服务状态,这会自动清理对应的cgroup资源:
systemctl reset-failed besclient.service
3. 手动清理cgroup条目(如果上面步骤没解决)
如果执行完上面两步后,cgroup的条目还存在,可以用cgdelete工具直接删除对应的cgroup组(SLES 12默认可能没装cgroup-tools,如果提示命令不存在,先安装:zypper install cgroup-tools):
# 删除pids控制器下的besclient cgroup cgdelete pids:/system.slice/besclient.service # 删除systemd控制器下的besclient cgroup cgdelete systemd:/system.slice/besclient.service
验证结果
最后再检查服务状态和cgroup文件:
systemctl status besclient.service ls -l /sys/fs/cgroup/pids/system.slice/besclient.service ls -l /sys/fs/cgroup/systemd/system.slice/besclient.service
正常情况下,服务会显示Loaded: not-found,cgroup的目录也会消失。
内容的提问来源于stack exchange,提问作者codec
相关产品推荐
相关产品推荐

