`ps f`はどのようなプロセスを示していますか?

`ps f`はどのようなプロセスを示していますか?

procps-ngのpsから提供

$ ps f | wc -l
225
$ ps -e | wc -l
410
$ ps | wc -l
4

ps -eすべてのプロセスを表示し、ps現在の端末を制御端末として使用するプロセスのみを表示します。どのようなプロセスが見えますかps f?ありがとうございます。

答え1

Ubuntuシステムでは、このコマンドは表示されたps fものとまったく同じプロセスを表示しpsますが、ASCIIアートプロセスツリーを使用します。

このオプションは出力形式を変更するオプションですps。これはpsUbuntuのマニュアルの「Output Modifiers」セクションにリストされています。したがって、表示されるプロセスは変更されません。

それを書く一緒に他のオプション(たとえばps f -e)を使用すると、コマンドの出力形式のみが変更され、プロセス選択は変更されません。

答え2

最初はyesと書いたが、ps f今質問はですps --forest。二人は同じではありません...

$ ps f
  PID TTY      STAT   TIME COMMAND
27614 pts/1    Ss     0:00 -ksh
27656 pts/1    R+     0:00  \_ ps f
 3356 pts/0    Ss     0:00 -ksh
 3370 pts/0    S+     0:06  \_ ssh mercury7

$ ps --forest
  PID TTY          TIME CMD
27614 pts/1    00:00:00 ksh
27658 pts/1    00:00:00  \_ ps

ps gそれらはのような範囲を含んでいますps

例えば

$ ps g
  PID TTY      STAT   TIME COMMAND
 3356 pts/0    Ss     0:00 -ksh
 3370 pts/0    S+     0:06 ssh mercury7
27614 pts/1    Ss     0:00 -ksh
28932 pts/1    R+     0:00 ps g

$ ps 
  PID TTY          TIME CMD
27614 pts/1    00:00:00 ksh
28755 pts/1    00:00:00 ps

答え3

~によるとマニュアルページ、明確ではありませんps fps --forest

f:

ASCIIアートプロセス階層(フォレスト)。

--forest:

ASCIIアートフローツリー。

しかし、どちらも「」に記載されています。出力修飾子「代わりに「出力フォーマット制御」を使用するため、出力は異なります。

fそれでは、vsの正確な違いは何ですか--forest? (免責事項:私はUNIXの専門家ではないので、まだUNIXのソースコードを読んでいませんps。)

ここに表示されるのは、--forest一つのルートがある「ツリー」(「フォレスト」とも呼ばれる)です。これは、プロセスの1つのSID(ほぼ現在のログインセッションに関連付けられているセッションID)を意味するため、他のプロセスを表示しません。根。一方、f森のような他の根のプロセスが表示されます。

したがって、ユースケースは次のとおりです。

  • ps --forestこのセッションで開始されたプロセスの「ツリー」を取得しようとするときに使用されます。
  • ps fすべてのセッションで現在のユーザーが開始したプロセスの「フォレスト」をインポートしたい場合に使用されます。

関連情報