ps output line length change
Cy Schubert
Cy.Schubert at cschubert.com
Sat Feb 17 02:03:49 UTC 2018
In message <201802170046.w1H0kvxN032252 at mail.karels.net>, Mike Karels
writes:
> A couple of weeks ago, I sent email on the committers list proposing
> reversion of r314685 changing the output line length for ps. In
> particular, it uses unlimited line length if stdout is not a tty.
> The previous code used the tty width if any of stdout, stderr, or
> stdin was a tty. The change in r314685 has not been shipped in
> any release yet.
>
> The responses to that email all agreed with reversion. However, there
> has been some additional discussion in private email. Therefore, I
> am sending this to arch at .
>
> My reasoning is this;
>
> 1. The output line length for the following commands should reasonably
> be the same in an interactive session: ps, ps | more, ps | grep.
>
> 2. The previous behavior is the way things have worked since 1990,
> as Conrad pointed out. As others pointed out, it has long been known
> that -ww was required to get unlimited lines, e.g. in a script. I
> don't see any significant justification to change 28 years of precedent.
>
> 3. The rationale for the change included that it is easier for scripts
> (which I maintain are broken if they assume this), and that it doesn't
> matter if using less with left-right scrolling. We shouldn't make
> assumptions about what the output is going through, let alone assume
> left-right scrolling. The previous algorithm was described as magic,
> but I think it is straightforward. Perhaps a comment is in order.
>
> I tried to think of a compromise solution, but the only thing that
> comes to mind is messy: an environment variable that would enable
> unlimited line length when the output was not a tty. That would not
> be easier for scripts. And as Bruce noted, aliasing ps to "ps -ww"
> does not work with old BSD-stype "ps axu".
Agreed. I also agree scripts that expect wide output without ww are
broken. However Linux ps, at least Red Hat, behaves the same. I believe
the change was made to be more Linux compatible and allow greater
portability.
>
> What do people think should be done?
That's a tough one. Break Linux compatibility or break BSD
compatibility?
Generally Linux users use ps -ef which we don't support and columns are
different so, Linux compatibility is... well just isn't.
My vote is to revert and have an environment variable with defaults,
e.g., PS=--linux or something similar.
--
Cheers,
Cy Schubert <Cy.Schubert at cschubert.com>
FreeBSD UNIX: <cy at FreeBSD.org> Web: http://www.FreeBSD.org
The need of the many outweighs the greed of the few.
More information about the freebsd-arch
mailing list