cgtop: allow user to force looping behavior even in non-TTY mode

This commit is contained in:
Charles Duffy 2015-05-22 22:18:15 -05:00
parent a2c9f63136
commit 780fe62eca
2 changed files with 11 additions and 9 deletions

View File

@ -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>

View File

@ -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;