psはすべてのプロセスを表示しません

psはすべてのプロセスを表示しません

scriptターミナルを起動した直後にコマンドを使用し、現在のセッション履歴が開始されましたが、ps後でコマンドを使用したときに独自のプロセスbashps独自のプロセスが2つだけ表示されましたが、スクリプトコマンドのすべてのプロセスは表示されませんでした。バックグラウンドで実行していますが、なぜこれが起こるのですか?もっと一般的に言えば、実際にこのコマンドが私の端末に2つ以上のプロセスを表示するのを見たことはありませんps。私のシェルや端末の設定に問題がありますか?私は現在Ubuntuを使用しています。

答え1

端末やシェルには何の問題もありません。psデフォルトでは、同じ実効ユーザー識別子があり、プロセスを実行しているユーザーと同じ端末に接続されているプロセスが表示されます。これは通常、現在のシェルとps独自のプロセスの2つだけを表示します。現在端末に関連付けられているバックグラウンドプロセスがある場合は、次のコマンドを実行してこれを確認することもできます。

sleep 120 &
ps

すべてのプロセスを表示するには:

ps -e

他のプロセス選択フラグもたくさんあります。man ps詳しくはシステムをご覧ください。

これを実行すると、script新しい端末が割り当てられ、新しいシェルが開始されるため、ps内部はscript別の端末で実行されます(同じ端末にあっても)。システムまたは同じ仮想コンソールで)。だからあなたはそれを見ることができませんscript。 beforeとafterを実行すると、ttyこれらの現象が発生することがわかりますscript。 2つの異なる値が出力されることがわかります。

また、見ることができます「ターミナル」、「シェル」、「tty」、「コンソール」の正確な違いは何ですか?

関連情報