]> granicus.if.org Git - sysstat/commitdiff
Merge branch 'parthsl-master'
authorSebastien GODARD <sysstat@users.noreply.github.com>
Fri, 2 Apr 2021 14:31:22 +0000 (16:31 +0200)
committerSebastien GODARD <sysstat@users.noreply.github.com>
Fri, 2 Apr 2021 14:31:22 +0000 (16:31 +0200)
1  2 
pidstat.c
pidstat.h

diff --cc pidstat.c
index 076e6640b7b10d6e1425d278858887749eea54fa,0f827f83554d56c03c40c42f1051c536b161a95e..c7c3c35bb78893f2a5025f59b72b27e962e95b00
+++ b/pidstat.c
@@@ -2363,18 -2363,17 +2363,20 @@@ void rw_pidstat_loop(int dis_hdr, int r
                read_proc_meminfo();
        }
  
--      if (!interval) {
++      if (!interval && !EXEC_PGM(pidflag)) {
                /* Display since boot time */
                ps_tstamp[1] = ps_tstamp[0];
 +              write_stats(0, DISP_HDR);
 +              exit(0);
        }
  
        /* Set a handler for SIGALRM */
        memset(&alrm_act, 0, sizeof(alrm_act));
        alrm_act.sa_handler = alarm_handler;
        sigaction(SIGALRM, &alrm_act, NULL);
-       alarm(interval);
 -      if (interval)
++      if (interval) {
+               alarm(interval);
++      }
  
        /* Save the first stats collected. Will be used to compute the average */
        ps_tstamp[2] = ps_tstamp[0];
@@@ -2544,7 -2543,7 +2546,7 @@@ int main(int argc, char **argv
                        if (!argv[++opt]) {
                                usage(argv[0]);
                        }
--                      pidflag |= P_D_PID;
++                      pidflag |= P_D_PID + P_F_EXEC_PGM;
                        add_list_pid(&pid_list, exec_pgm(argc - opt, argv + opt), 0);
                        break;
                }
diff --cc pidstat.h
index ac7a6a088ac8b75c76e3a90f7f8e474d996049d3,ac7a6a088ac8b75c76e3a90f7f8e474d996049d3..b4f9758561ff1c4d7791069768f3fc445bd702c2
+++ b/pidstat.h
@@@ -70,6 -70,6 +70,7 @@@
  #define P_F_PROCSTR   0x0400
  #define P_D_UNIT      0x0800
  #define P_D_SEC_EPOCH 0x1000
++#define P_F_EXEC_PGM  0x2000
  
  #define DISPLAY_PID(m)                (((m) & P_D_PID) == P_D_PID)
  #define DISPLAY_ALL_PID(m)    (((m) & P_D_ALL_PID) == P_D_ALL_PID)
@@@ -84,6 -84,6 +85,7 @@@
  #define PROCESS_STRING(m)     (((m) & P_F_PROCSTR) == P_F_PROCSTR)
  #define DISPLAY_UNIT(m)               (((m) & P_D_UNIT) == P_D_UNIT)
  #define PRINT_SEC_EPOCH(m)    (((m) & P_D_SEC_EPOCH) == P_D_SEC_EPOCH)
++#define EXEC_PGM(m)           (((m) & P_F_EXEC_PGM) == P_F_EXEC_PGM)
  
  /* Per-process flags */
  #define F_NO_PID_IO   0x01