Date: Thu, 22 Dec 2005 11:50:08 GMT From: Vadim Goncharov <vadim_nuclight@mail.ru> To: freebsd-bugs@FreeBSD.org Subject: Re: bin/90690: ps(1) errorneously respects terminal column settings when output is not to a terminal Message-ID: <200512221150.jBMBo8im078138@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR bin/90690; it has been noted by GNATS. From: Vadim Goncharov <vadim_nuclight@mail.ru> To: bug-followup@FreeBSD.org Cc: Oliver Fromme <olli@lurza.secnetix.de> Subject: Re: bin/90690: ps(1) errorneously respects terminal column settings when output is not to a terminal Date: Thu, 22 Dec 2005 05:26:00 +0600 Hello Oliver, Wednesday, December 21, 2005, 11:00:06 PM, you wrote: OF> What you describe is standard BSD ps(1) behaviour, as is OF> documented in the manual page. It's not clarified there in the case of redirection. OF> Basically, the intent is that, when you redirect ps(1) output OF> somewhere (to a file or pipe), you get exactly the same that OF> is displayed on the screen. This is counter-intuitive. If I am redirecting output to file, I expect to see result somewhat later. It's somewhat strange that result will be not stable constant, but unpredictable, depending on terminal settings at the moment of running. OF> The rules are: If ps(1) is running in a terminal, it's width OF> is used. If it's not running in a terminal (e.g. via a cron OF> job) or the width cannot be determined, the default is 80 OF> columns. To determine the terminal width, any one of stdout, OF> stderr or stdin is used -- therefore, to let ps(1) ignore the OF> terminal width, you have to redirect stderr and stdin. OF> If you specify the -w option once, the limit is expanded to OF> 132 columns (unless your terminal width is already larger OF> than that). Finally, if you specify -w twice, the width is OF> assumed to be unlimited. Compare it with ls(1) behavior. If output is not to a terminal, ls behaves as expected, not using any terminal crap. And this is clearly documented in ls man page. OF> When you use ps(1) in a pipe to grep for things, you should OF> always use the -ww options. Also note that newer versions of FreeBSD (>> 4.x) have a pgrep(1) command which can be used OF> as a convenient replacement for ps | grep pipes. Yes, but grep is not the only thing used with redirection. Moreover, I've tried to run "ps aux > myprocs.txt" on Linux (Slackware 10) and it worked as I expected - full lines in file while on terminal they were truncated (and linux have pgrep(1) also). So, I insist that ps(1) behavior should be corrected. OK, developers may have another opinion, but in that case at least ps man page should be fixed, adding a paragraph clarifying this, somewhat like what you explained earlier in this post. -- WBR, Vadim Goncharov FidoNet 2:5005/106.426 ICQ#166852181
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200512221150.jBMBo8im078138>