]> granicus.if.org Git - sysstat/commitdiff
pidstat: Display stats since boot time for a list of given processes
authorSebastien GODARD <sysstat@orange.fr.fake>
Wed, 2 Oct 2013 07:55:38 +0000 (09:55 +0200)
committerSebastien GODARD <sysstat@orange.fr.fake>
Wed, 2 Oct 2013 07:55:38 +0000 (09:55 +0200)
pidstat displays statistics since system startup when the interval and
count parameters are not set on the command line (eg. entering "pidstat
-d" will display I/O statistics for all processes that have had I/O
activity since boot time). But pidstat couldn't display those stats when
some PID numbers were entered on the command line (eg. "pidstat -d -p
1234" to display I/O stats since system startup for process 1234).
This patch makes it possible now.

Signed-off-by: Sebastien GODARD <sysstat@orange.fr.fake>
pidstat.c

index ed0874869df553c2efcf55f33b6bb9f14c137c8c..fb8157f2e0599355eecdc4068fa55a76f0dd0655 100644 (file)
--- a/pidstat.c
+++ b/pidstat.c
@@ -1113,10 +1113,18 @@ int get_pid_to_display(int prev, int curr, int p, unsigned int activity,
        
        else if (DISPLAY_PID(pidflag)) {
                *pstp = st_pid_list[prev] + p;
-
-               if (!(*pstp)->pid)
-                       /* PID no longer exists */
-                       return 0;
+               if (!(*pstp)->pid) {
+                       if (interval)
+                               /* PID no longer exists */
+                               return 0;
+                       else {
+                               /*
+                                * If interval is null, then we are trying to
+                                * display stats for a given process since boot time.
+                                */
+                               *pstp = &st_pid_null;
+                       }
+               }
        }
 
        if (COMMAND_STRING(pidflag)) {