出力リダイレクト時にopenSUSE Leap 15.3でps aux --headersの問題が発生する

出力リダイレクト時にopenSUSE Leap 15.3でps aux --headersの問題が発生する

以下はopenSUSE Leap 15.3で正しく実行されます。端末のスクロールバーを使用して後方にスクロールすると、出力画面ごとにヘッダー行が繰り返されます。

ps aux --headers

ただし、出力をファイルまたは他のコマンドにリダイレクトすると、出力の最初の行にある最初のヘッダー行のみが表示されます。各出力画面の予想ヘッダー行がありません。実際のプロセスの出力は正常に表示されます。問題を再現する2つのコマンド:

ps aux --headers | less

または

ps aux --headers  >> ps.out

画面とファイルの出力にteeコマンドを使用する場合も同じ問題が発生します。

ps aux --headers | tee ps-tee.out

エラーが発生したかどうかを確認するには、次のコマンドを使用しましたが、エラーファイルが空でした。

ps aux --headers 1>>ps.out 2>>ps.error

grep がヘッダー行を見つけたときに一度だけ一致します。

dave@localhost:~> ps aux --headers | egrep RSS | egrep -v grep
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
dave@localhost:~> 

私はbashを使用していますが、ksh、csh、zshも試しましたが、同じ問題が発生しました。

この問題は、GUIデスクトップ(KDE / Konsole)でターミナルを起動したときとPuttyを使用してボックスにSSHとして接続したときに発生します。

openSUSE Leap 15.3に加えて、SUSE Linux Enterprise 15.3以前のSUSE Linux Enterprise 11.4でも同じ問題が発生します(Puttyを介したSSHセッションのみ試行)。

CentOS 6/7とMint 19(bashを使用)は、出力をコマンドまたはファイルにリダイレクトするときに期待どおりに機能します。各出力画面のヘッダーラインが見えるからです。

CentOS / Mintのgrepは複数のヘッダー行を見ることができますが、これがopenSUSEで期待できるものです。

[dave@centos1 ~]$ ps aux --headers | egrep RSS  
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
dave      3682  0.0  0.0   4424   816 pts/0    S+   11:58   0:00 egrep RSS
[dave@centos1 ~]$

リダイレクトのために追加/後続のヘッダー行がリダイレクト出力から消える理由についてのヒント/説明をありがとうございます。

ベストアンサー1

端末から出力をリダイレクトしています。したがって、psこのコマンドにはディスプレイサイズに関する情報は含まれなくなり、ディスプレイが非常に広く非常に長いと仮定します。最終的にファイルにリダイレクトし、異なるサイズの端末でそのファイルを見ると、以前の端末のサイズ仮定は適用されなくなります。ポケットベルと最初の画面をナビゲートした後にウィンドウのサイズを変更すると、前のサイズの仮定が適用されなくなった場合でも意味がない可能性があります。

おすすめ記事