为了解决将进程放入错误 cgroup 的 cgroup 问题,有人建议我/proc/process-id/cgroups
在进程运行的一段时间内定期对文件进行快照。这样做的目的是识别进程并检查其分配的 cgroup 是否正确和/或是否随时间发生变化。
有谁知道有什么工具可以捕获此类信息吗?我知道,/proc
由于其性质,简单的“tar”操作不是一种选择。
答案1
即使它是虚拟的,它也只是一个文本文件:
grep . /proc/[0-9]*/cgroup | sort -V > snapshot.txt
这不会包含进程名称(仅包含 PID),但如果您尝试观察长时间运行的进程,那么这可能就足够了,而且从 /proc/…/exe 或 /proc/…/cmdline 获取命令也很容易。您可以如果您仔细指定了要包含的内容,甚至可能是“tar”/proc。
或者,如果您想要树形输出(包含进程名称和所有内容):
systemd-cgls
(在 cgroup v2 系统上最佳。在 cgroup v1 上,systemd-cgls 仅捕获“name=systemd”,而不捕获其他控制器。)