É possível identificar o que o programa / aplicativo pai é de um processo em execução?

2

Consigo encontrar processos usando top ou ps. Não tem problema.

Às vezes, percebo que alguns processos estão ocupando muita memória ou cpu e estou tentando identificar o que é o programa raiz.

Por exemplo, o processo sort às vezes acaba levando 2-3 gigas de memória por 4 horas. Gostaria de saber qual programa iniciou o sort processo para que eu possa tentar corrigi-lo.

jwmann
fonte

Respostas:

2

ps tem uma opção para acessar o PPID / pai PID de um processo:

$ ps aux -o ppid
USER               PID  %CPU %MEM      VSZ    RSS   TT  STAT STARTED      TIME COMMAND           PPID
admin            65694  10.9  0.1  4385132  13340   ??  UN    9:32PM   0:00.07 /System/Library/     1

PPID é a última coluna neste caso.

(Ou use o Activity Monitor selecionando View - & gt; All Processes, Hierarchically )

nohillside
fonte
Tem certeza de que este é um comando certo? Eu tenho um erro: $ ps -aux -o PPID ps: No user named 'x' ps: PPID: keyword not found ps: no valid keywords; valid keywords:
Mateusz Szlosek
Eu não estou perto de corrigir um Mac, poderia ter entendido errado
nohillside
@ user3439894 Funciona agora :) Mas o problema é que eu não vejo o nome do processo em COMMAND guia, apenas o início do caminho (16 caracteres)
Mateusz Szlosek
2
@Mateusz Szlosek, tente usar ps auxc -o ppid em vez disso, você terá pelo menos o nome do executável do processo para mostrar logo antes do ppid. Leia também a página de manual para ps.
user3439894
2

Você pode usar htop e mostrar precessos "árvore" (pressionando F5 ) lá. Aqui está um exemplo:

htop example screen

Mateusz Szlosek
fonte
Acabei usando htop para minhas necessidades (antes de ver esta resposta) e funcionou muito bem. Obrigado! Eu escolhi a outra Resposta porque era o que eu estava procurando originalmente e não precisava de binários extras para executar.
jwmann