Commit 581092fc by Serge Hallyn Committed by Daniel Lezcano

fix lxc-netstat for nested cgroups

Use the correct path for the container's cgroup task file. Also exit out early and cleanly if the container is not running, and bind-mount /proc/$pid/net with '-n' to keep the entry out of mtab, else the mtab entry will never go away. Signed-off-by: 's avatarSerge Hallyn <serge.hallyn@canonical.com> Signed-off-by: 's avatarDaniel Lezcano <dlezcano@fr.ibm.com>
parent 828695d9
......@@ -45,6 +45,12 @@ if [ -z "$name" ]; then
exit 1
fi
lxc-info -n $name 2>&1 | grep -q 'STOPPED'
if [ $? -eq 0 ]; then
echo "Container $name is not running"
exit 1
fi
cgroups=$(mount -l -t cgroup)
cgroup_path=""
......@@ -74,12 +80,16 @@ if [ -z "$cgroup_path" ]; then
exit 1
fi
pid=$(head -1 $cgroup_path/$name/tasks)
# the container will be in:
# ${cgroup_path}.${init_cgroup_path}."lxc".$name
init_cgroup=`cat /proc/1/cgroup | awk -F: '{ print $3 }' | head -1`
final_cgroup_path=$cgroup_path/$init_cgroup/lxc
pid=$(head -1 $final_cgroup_path/$name/tasks)
if [ -z "$pid" ]; then
echo "no process found for '$name'"
exit 1
fi
mount --bind /proc/$pid/net /proc/$$/net && \
mount -n --bind /proc/$pid/net /proc/$$/net && \
exec netstat "$@"
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment