diff options
author | Charles Duffy <chaduffy@cisco.com> | 2015-05-22 22:18:15 -0500 |
---|---|---|
committer | Charles Duffy <chaduffy@cisco.com> | 2015-06-09 19:39:16 -0500 |
commit | 780fe62ecab08850cefd136b95f38c15cb31c0ec (patch) | |
tree | 4444c841c892516298fbdc8f5fd6fd6f8b6670c3 | |
parent | a2c9f63136775b128bdb9fb3e1b57f5ad977d5cb (diff) |
cgtop: allow user to force looping behavior even in non-TTY mode
-rw-r--r-- | man/systemd-cgtop.xml | 14 | ||||
-rw-r--r-- | src/cgtop/cgtop.c | 6 |
2 files changed, 11 insertions, 9 deletions
diff --git a/man/systemd-cgtop.xml b/man/systemd-cgtop.xml index b3298b64f3..d14564480d 100644 --- a/man/systemd-cgtop.xml +++ b/man/systemd-cgtop.xml @@ -65,10 +65,12 @@ groups of the local Linux control group hierarchy, ordered by their CPU, memory, or disk I/O load. The display is refreshed in regular intervals (by default every 1s), similar in style to - <citerefentry project='man-pages'><refentrytitle>top</refentrytitle><manvolnum>1</manvolnum></citerefentry>. - If <command>systemd-cgtop</command> is not connected to a tty, - only one iteration is performed and no columns headers are - printed. This mode is suitable for scripting.</para> + <citerefentry project='man-pages'><refentrytitle>top</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para> + + <para>If <command>systemd-cgtop</command> is not connected to a tty, no + column headers are printed and the default is to only run one iteration. + The <varname>--iterations</varname> argument, if given, is still honored. + This mode is suitable for scripting.</para> <para>Resource usage is only accounted for control groups in the relevant hierarchy, i.e. CPU usage is only accounted for control @@ -155,8 +157,8 @@ <term><option>-n</option></term> <term><option>--iterations=</option></term> - <listitem><para>Perform only this many iterations. - </para></listitem> + <listitem><para>Perform only this many iterations. A value of 0 + indicates that the program should run indefinitely.</para></listitem> </varlistentry> <varlistentry> diff --git a/src/cgtop/cgtop.c b/src/cgtop/cgtop.c index 8c58cd2c04..d04d6f225c 100644 --- a/src/cgtop/cgtop.c +++ b/src/cgtop/cgtop.c @@ -60,7 +60,7 @@ typedef struct Group { } Group; static unsigned arg_depth = 3; -static unsigned arg_iterations = 0; +static unsigned arg_iterations = (unsigned)-1; static bool arg_batch = false; static bool arg_raw = false; static usec_t arg_delay = 1*USEC_PER_SEC; @@ -715,8 +715,8 @@ int main(int argc, char *argv[]) { signal(SIGWINCH, columns_lines_cache_reset); - if (!on_tty()) - arg_iterations = 1; + if (arg_iterations == (unsigned)-1) + arg_iterations = on_tty() ? 0 : 1; while (!quit) { Hashmap *c; |