如何找出特定进程的cgroup?

有没有办法获得cgroup进程

我知道的唯一一个软件包( cgroup-bin ),只是提供了一些cgroup的操作,允许改变进程/进程列表的cgroup,但没有能力知道特定进程的cgroup信息。

查看进程的cgroup最快捷的方法是使用这个bash脚本的进程名称:

 #!/bin/bash THISPID=`ps -eo pid,comm | grep $1 | awk '{print $1}'` cat /proc/$THISPID/cgroup 

使用systemd(例如PID 3378):

 # systemctl status 3378 | grep CGroup CGroup: /user.slice/user-1000.slice/session-3.scope 

使用proc:

 # cat /proc/3378/cgroup 10:memory:/user.slice/user-1000.slice 9:blkio:/user.slice/user-1000.slice 8:net_cls,net_prio:/ 7:cpu,cpuacct:/user.slice/user-1000.slice 6:perf_event:/ 5:freezer:/ 4:cpuset:/ 3:pids:/user.slice/user-1000.slice 2:devices:/user.slice/user-1000.slice 1:name=systemd:/user.slice/user-1000.slice/session-3.scope 

调查/ sys /:

 # cd /sys/fs/ && find * -name "*.procs" -exec grep 3378 {} /dev/null \; 2> /dev/null cgroup/memory/user.slice/user-1000.slice/cgroup.procs:3378 cgroup/blkio/user.slice/user-1000.slice/cgroup.procs:3378 cgroup/net_cls,net_prio/cgroup.procs:3378 cgroup/cpu,cpuacct/user.slice/user-1000.slice/cgroup.procs:3378 cgroup/perf_event/cgroup.procs:3378 cgroup/freezer/cgroup.procs:3378 cgroup/cpuset/cgroup.procs:3378 cgroup/pids/user.slice/user-1000.slice/cgroup.procs:3378 cgroup/devices/user.slice/user-1000.slice/cgroup.procs:3378 cgroup/systemd/user.slice/user-1000.slice/session-3.scope/cgroup.procs:3378