From ec3a7f40459a0689736e3d085a149d2c0011b6f8 Mon Sep 17 00:00:00 2001 From: Lars Kruse Date: Sun, 11 Aug 2019 23:58:15 +0200 Subject: [PATCH] Plugin lxc: function "lxc_count_processes" now outputs its result Previously the result was returned as the exit code of the function (which would prevent the usage of "set -e"). Additionally the fallback value that was previously calculated outside of the function is now part of it. --- plugins/lxc/lxc-multigraph | 44 ++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 21 deletions(-) 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 <