diff --git a/plugins/lxc/lxc-multigraph b/plugins/lxc/lxc-multigraph index 817e32e0..a06c1c0e 100755 --- a/plugins/lxc/lxc-multigraph +++ b/plugins/lxc/lxc-multigraph @@ -141,34 +141,37 @@ function lxc_netdev { # Ubuntu 14.04 /sys/fs/cgroup/systemd/lxc//tasks # and with cgmanager on jessie lxc_count_processes () { + local guest_name="$1" local SYSFS - [ -z "$1" ] && return 0 + [ -z "$guest_name" ] && return 0 if [ -n "$cgrouppath" ]; then - SYSFS="$cgrouppath/$1/tasks" + SYSFS="$cgrouppath/$guest_name/tasks" if [ -e $SYSFS ]; then - return $(wc -l < $SYSFS) + wc -l <"$SYSFS" + return fi fi for SYSFS in \ - /sys/fs/cgroup/"$1"/tasks \ - /sys/fs/cgroup/lxc/"$1"/tasks \ - /sys/fs/cgroup/systemd/lxc/"$1"/tasks \ - /sys/fs/cgroup/cpuacct/lxc/"$1"/tasks \ - /sys/fs/cgroup/cpuacct/sysdefault/lxc/"$1"/tasks + /sys/fs/cgroup/"$guest_name"/tasks \ + /sys/fs/cgroup/lxc/"$guest_name"/tasks \ + /sys/fs/cgroup/systemd/lxc/"$guest_name"/tasks \ + /sys/fs/cgroup/cpuacct/lxc/"$guest_name"/tasks \ + /sys/fs/cgroup/cpuacct/sysdefault/lxc/"$guest_name"/tasks do if [ -e $SYSFS ]; then - return $(wc -l < $SYSFS) + wc -l <"$SYSFS" + return fi done if [ -e /usr/bin/cgm ]; then - return $(cgm getvalue cpu "lxc/$1" tasks 2>/dev/null | wc -l) + cgm getvalue cpu "lxc/$guest_name" tasks 2>/dev/null | wc -l + else + lxc_cgroup -n "$guest_name" tasks | wc -l fi - - return 0 } @@ -359,24 +362,23 @@ for n in $active_guests do device=$(lxc_netdev "$n") if [ "$device" = "unknown" ]; then - continue + value_up="U" + value_down="U" + else + value_up=$(egrep "^ *${device}:" /proc/net/dev | awk '{print $10;}') + value_down=$(egrep "^ *${device}:" /proc/net/dev | awk '{print $2;}') fi cat <