vmstat -w not honored
Damien Fleuriot
ml at my.gd
Fri Feb 15 22:56:21 UTC 2013
On 15 Feb 2013, at 21:01, Lowell Gilbert <freebsd-questions-local at be-well.ilk.org> wrote:
> Fleuriot Damien <ml at my.gd> writes:
>
>> I'm running 8.3-STABLE and apparently, vmstat won't honor both -i
>> (interrupts) and -w (repeat display every wait delay seconds) flags at
>> the same time.
>> The problem also arises with -z.
>>
>> The manual doesn't mention these flags being incompatible with -w.
>
> They are. And with -c as well. *Only* the actual VM-related information
> display supports the looping. [The full set of flags incompatible with
> w and c is: f, i, m, s, z.
>
>> Anyone knows if this is intended behavior ?
>
> A better question would be whether it would actually be useful to
> change. In theory, other display routines could be modified to
> repeat. But their output formats would have to change, to fit all of the
> output on a single line. That would be a lot less readable for humans.
>
> If you've got an idea for what it could look like, I'd be happy to
> implement it for you. It would also have to figure out what the results
> would be if multiple kinds of output (e.g., interrupt counts *and*
> virtual memory) were specified. For the one-shot types of output, you
> can get more than one in a single command.
>
It's not a bother to me that the output doesn't get repeated really, don't bother implementing it if it's too much of a hassle.
Besides, I could always use a loop to exec the command every X seconds.
A much easier approach could be to mention it in the manual :)
>> I wanna make sure before filling a PR, either to get this fixed or the man pages adjusted.
>
> Well, the following patch will at least warn the user about it at run time:
>
> --- vmstat.c (revision 246551)
> +++ vmstat.c (working copy)
> @@ -304,6 +304,8 @@
> reps = -1;
> } else if (reps)
> interval = 1 * 1000;
> + if (interval && !(todo & VMSTAT))
> + warnx("Ignoring repeat request: cannot repeat on this type of output");
>
> if (todo & FORKSTAT)
> doforkst();
More information about the freebsd-questions
mailing list