PS:“ps -o comm= -p $PPID”的作用是什么

PS:“ps -o comm= -p $PPID”的作用是什么

我有一个脚本可以做到这一点ps -o comm= -p $PPID

解释说这获取父进程名称。

从手册页中我发现-o意味着用户定义的格式,comm意味着命令,-p意味着通过给定的 PID 选择进程 - 在本例中$PPID,这意味着父 PID。

  • 这是什么comm= -p $PPID意思?
  • 这个命令是如何工作的?

答案1

  • -o comm=意味着用户输出应该只是命令名称,但没有任何列标题。例如,如果您这样做-o comm=COMMAND,它会打印一个列标题COMMAND

     $ ps -o comm= -p $PPID
     xterm
     $ ps -o comm=COMMAND -p $PPID
     COMMAND
     xterm
    
  • -p $PPID选择给定父进程的PID, PPID

这意味着-o comm= -p $PPID有两个独立的选项。

因此,您的命令本质上确实通过其父进程的名称为您提供了父进程的名称PPID

例如,如果我启动tmux,它的 PID 为PID1632。现在我bash在每个窗格中启动几个,每个窗格的 PPID 为 1632,但有自己的 PID。

您可以了解更多信息什么是PID和PPID?

我不确定,但ps可能会考虑/proc/$PPID/comm确定父级的命令名称。

就我而言,执行此命令将为您提供父进程的名称,而不使用ps

$ cat /proc/$PPID/comm
tmux
$ cat /proc/1632/comm
tmux

相关内容