PS: o que significa “ps -o comm = -p $ PPID”

4

Eu tenho um script que faz ps -o comm= -p $PPID .

A explicação diz que isso obtém o nome do processo pai.

A partir da página man eu descobri -o significa formato definido pelo usuário, comm significa comando e -p significa selecionar o processo pelo PID dado - neste caso $PPID , que significa PID pai.

  • O que significa comm= -p $PPID ?
  • Como funciona esse comando?
por user881300 21.07.2014 / 22:34

1 resposta

6
  • -o comm= significa que a saída do usuário deve ser apenas o nome do comando, mas sem nenhum título de coluna. Por exemplo. se você usar -o comm=COMMAND , imprimirá um título de coluna COMMAND :

    $ ps -o comm= -p $PPID
    xterm
    $ ps -o comm=COMMAND -p $PPID
    COMMAND
    xterm
    
  • -p $PPID seleciona o processo pelo PID do pai determinado, o PPID .

Isso significa que -o comm= -p $PPID são duas opções independentes.

Assim, o seu comando essencialmente lhe dá o nome do processo pai, que é PPID .

Por exemplo se eu iniciar tmux , ele terá o PID de 1632. Agora, inicio vários bash em cada painel, cada um com o PPID de 1632, mas com seu próprio PID.

Saiba aqui mais sobre PID e PPID s.

Não tenho certeza, mas ps pode ver /proc/$PPID/comm para determinar o nome do comando pai.

No meu caso, a execução desse comando fornece o nome do processo do pai, sem usar ps :

$ cat /proc/$PPID/comm
tmux
$ cat /proc/1632/comm
tmux
    
por 21.07.2014 / 22:42