summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharles Duffy <chaduffy@cisco.com>2015-05-22 22:18:15 -0500
committerCharles Duffy <chaduffy@cisco.com>2015-06-09 19:39:16 -0500
commit780fe62ecab08850cefd136b95f38c15cb31c0ec (patch)
tree4444c841c892516298fbdc8f5fd6fd6f8b6670c3
parenta2c9f63136775b128bdb9fb3e1b57f5ad977d5cb (diff)
cgtop: allow user to force looping behavior even in non-TTY mode
-rw-r--r--man/systemd-cgtop.xml14
-rw-r--r--src/cgtop/cgtop.c6
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;