Como encontrar chamadas processadas de um terminal específico?

2

Às vezes, inicio processos em segundo plano usando o terminal. Por exemplo:

$ matlab &

Algumas horas depois, não consigo lembrar de qual Terminal eu comecei o Matlab, ou seja, qual Terminal não é seguro fechar.

Como posso fazer o check-in de um Terminal para ver quais processos filhos ele gerou (se algum)?

    
por Bill Cheatham 14.11.2012 / 18:48

2 respostas

2

O comando jobs listará todas as tarefas em segundo plano iniciadas a partir do shell em que você digitou.

    
por Dennis Kaarsemaker 14.11.2012 / 19:11
1

Provavelmente, o melhor caminho (além da resposta de Dennis ) é com o comando bem conhecido e amplamente usado:

ps -e -o pid,ppid,args --forest

Então você pode ver rapidamente o pid do terminal que lançou vários processos e os próprios processos:

 3494  3490  \_ gnome-pty-helper
 3495  3490  \_ bash
 3566  3495  |   \_ evince
 3578  3490  \_ bash
 3684  3578  |   \_ man ps
 3693  3684  |       \_ pager -s
 3709  3490  \_ bash
 3801  3709      \_ /usr/bin/python /usr/bin/meld
 3871  3709      \_ ps -e -o pid,ppid,args --forest

Para um terminal específico, insira ps -T nesse terminal:

 PID  SPID TTY          TIME CMD
 3709  3709 pts/3    00:00:00 bash
 3801  3801 pts/3    00:00:00 meld
 3882  3882 pts/3    00:00:00 ps

Para mais informações sobre ps , consulte man ps ou os Man pages on-line do Ubuntu . Existem algumas combinações ps muito interessantes e extremamente úteis que podem ser feitas. Fui inspirado por alguns dos exemplos neste artigo e continuo a experimentar diferentes combinações.

    
por user76204 14.11.2012 / 19:10