We must output the lines from 'ps' in same order for tree views.

Fix also --lxc option to only show processes from containers.

Signed-off-by: Natanael Copa <nc...@alpinelinux.org>
---

The logic was wrong. Sorry.

 src/lxc/lxc-ps.in | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/src/lxc/lxc-ps.in b/src/lxc/lxc-ps.in
index 25e843b..5f7cf4d 100644
--- a/src/lxc/lxc-ps.in
+++ b/src/lxc/lxc-ps.in
@@ -114,7 +114,8 @@ for container in ${containers}; do
 done
 
 # first file is stdin, the rest are the container tasks
-ps "$@" | awk -v container_field_width="$container_field_width" '
+ps "$@" | awk -v container_field_width="$container_field_width" \
+    -v list_container_processes="$list_container_processes" '
 # first line is PS header
 NR == 1 {
     # find pid field index
@@ -133,7 +134,8 @@ NR == 1 {
 
 # store lines from ps with pid as index
 NR == FNR {
-    ps[$pididx] = $0
+    ps_line[NR] = $0
+    pid_of_line[NR] = $pididx
     next
 }
 
@@ -151,8 +153,11 @@ FNR == 1 {
 
 END {
     printf("%-" container_field_width "s %s\n", "CONTAINER", header)
-    for (pid in container_of_pid)
-        printf("%-" container_field_width "s %s\n", container_of_pid[pid], 
ps[pid])
+    for (i in ps_line) {
+       container = container_of_pid[pid_of_line[i]]
+        if (list_container_processes == 0 || container != "")
+            printf("%-" container_field_width "s %s\n", container, ps_line[i])
+    }
 }
 
 ' - $tasks_files
-- 
1.8.0.3


------------------------------------------------------------------------------
Master HTML5, CSS3, ASP.NET, MVC, AJAX, Knockout.js, Web API and
much more. Get web development skills now with LearnDevNow -
350+ hours of step-by-step video tutorials by Microsoft MVPs and experts.
SALE $99.99 this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122812
_______________________________________________
Lxc-devel mailing list
Lxc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lxc-devel

Reply via email to