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
。これはps
Ubuntuのマニュアルの「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 f
。ps --forest
f
:
ASCIIアートプロセス階層(フォレスト)。
--forest
:
ASCIIアートフローツリー。
しかし、どちらも「」に記載されています。出力修飾子「代わりに「出力フォーマット制御」を使用するため、出力は異なります。
f
それでは、vsの正確な違いは何ですか--forest
? (免責事項:私はUNIXの専門家ではないので、まだUNIXのソースコードを読んでいませんps
。)
ここに表示されるのは、--forest
一つのルートがある「ツリー」(「フォレスト」とも呼ばれる)です。これは、プロセスの1つのSID(ほぼ現在のログインセッションに関連付けられているセッションID)を意味するため、他のプロセスを表示しません。根。一方、f
森のような他の根のプロセスが表示されます。
したがって、ユースケースは次のとおりです。
ps --forest
このセッションで開始されたプロセスの「ツリー」を取得しようとするときに使用されます。ps f
すべてのセッションで現在のユーザーが開始したプロセスの「フォレスト」をインポートしたい場合に使用されます。