如何绘制从 shell 到内核的进程树?

如何绘制从 shell 到内核的进程树?

我无法理解这个问题

对于树中的每个进程,指示进程的名称、进程的 ID 号以及进程所有者的名称。

答案1

对于树中的每个进程,指示进程的名称、 以及进程所有者的名称。

您需要一种方法来获取此信息,可能基于 PID(“进程的 ID 号”),因为 PPID(父进程 ID)将引导您沿着树到达父进程。线索:当前bash进程的PID在$BASHPID(或$$)中。

绘制从 shell 开始一直到内核的进程和父进程树

线索#2:内核只启动一个进程,即 init 守护进程(传统上称为init,但也可能称为其他名称)。该进程的 PID 为 1,其父进程为 0。其他进程都是 init 的后代,因此这就是您的树所指向的位置。

从技术上讲,我不认为你被要求做的是画一个,你被要求画一个,尽管从概念上讲,该链是穿过树的路径(想象一个文件小路,这是一系列/链目录,是较大目录树的一部分)。您通过该概念树的分支追溯到树的“根”(与真实的树相比,计算机科学中的树通常表示为颠倒的,基部/根位于顶部,分支向下分支) 。

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

答案2

这看起来像是一份工作pstree

pstree -npu

  • pstree→ 以树形格式显示流程,(正确)从init
  • -n→ 按 PID(进程 ID)排序,而不是按字母顺序排序
  • -u→ 显示所有者(注视它的用户)
  • (额外的:-h突出显示当前进程及其祖先)

更多选项的完整手册可以在这里找到 →http://www.linfo.org/pstree.html或本地在您信任的man/页面中:infoman 1 pstree

相关内容