シェルからカーネルにプロセスツリーを描画するには?

シェルからカーネルにプロセスツリーを描画するには?

この質問を理解できません

ツリー内の各プロセスのプロセス名、プロセスID番号、プロセス所有者名を表示します。

答え1

ツリー内の各プロセスのプロセス名とプロセス所有者の名前を表示します。

PPID(親プロセスID)がツリーの下の親プロセスにリンクされるため、PID(「プロセス」ID番号」)に基づいてこの情報を取得する方法が必要です。手がかり:現在、bashプロセスのPIDは$BASHPID(または$$)にあります。

シェルから始まり、カーネルに移動するプロセスと親プロセスツリーを描画します。

手がかり#2:カーネルはinitデーモン(伝統的にthisと呼ばれますが、別のinit名前で呼ばれることもあります)という1つのプロセスだけを起動します。プロセスのPIDは1で、親プロセスは0です。他のプロセスはすべてinitの子孫なので、ツリーが指す場所はここです。

技術的に、私はあなたがするように頼まれたものが絵を描くとは思わない。、あなたは絵を描くように頼まれましたチェーン、概念的にチェーンはツリーを通る経路ですが(ファイルを想像してみてください)、これはより大きなディレクトリツリーの一部である一連の/chainディレクトリです。概念的な木の枝を木の「根」まで追跡します(実際の木と比較して、コンピュータサイエンスの木はしばしば底面/根が一番上にあり、枝が下に分かれるなど、逆に表現されます)。

          root
         /    \
        /\    /\
       /\/\  /\/\

答え2

これは仕事のようですpstree

pstree -npu

  • pstree→プロセスをツリー形式で表示します。init
  • -n→アルファベット順ではなくPID(プロセスID)でソート
  • -u→所有者の表示(ユーザーが見ている)
  • (追加の:-h現在のプロセスとその親プロセスを強調)

より多くのオプションの完全なマニュアルはここにあります→http://www.linfo.org/pstree.htmlまたは信頼できるman/pagesからローカル:infoman 1 pstree

関連情報