start cmd: # screen -ls
There is a screen on:
24525.pts-0.syscontrol (Attached)
start cmd: # pstree -p 24525
screen(24525)─┬─bash(10773)───su(10790)───bash(10791)
├─bash(10863)───pstree(11099)
└─bash(24526)
Eu tenho um aplicativo que durante a instalação executa um monte de processos via tela, para que eu possa vê-los se anexados à tela, no entanto eu não vejo aqueles via "ps -ef" ou "ps auxww". Como posso listar todos os processos em execução dentro da tela?
Obrigado.
start cmd: # screen -ls
There is a screen on:
24525.pts-0.syscontrol (Attached)
start cmd: # pstree -p 24525
screen(24525)─┬─bash(10773)───su(10790)───bash(10791)
├─bash(10863)───pstree(11099)
└─bash(24526)
Usar pstree
simplifica bastante o problema, mas alguns esclarecimentos podem ajudar.
Quando você inicia screen
, ele executa dois processos, screen
(o pai) e SCREEN
(o filho):
-ls
de screen
mostra o identificador de sessão com o ID do processo da criança. pstree
pode fazer isso. Atar estes juntos exige um script. Aqui está um exemplo:
# $Id: ps-screen,v 1.1 2016/10/23 22:19:56 tom Exp $
# http://unix.stackexchange.com/questions/172347/list-processes-running-inside-of-screen-manager-with-with-vt100-ansi-terminal-e
screen -ls | awk '/[0-9]+\./{print;}' | while read session
do
child=$(echo "$session" | awk '{sub("\..*","",$1); print $1;}')
printf '%s\n' "$session"
parent=$(ps -p $child -o ppid=)
pstree -p -a $parent
done
e saída de exemplo, para duas sessões:
~ (101) ps-screen
38142.pts-1.vmw-debian7-64 (10/23/2016 06:20:28 PM) (Attached)
screen,38141
└─screen,38142
└─tcsh,38143
└─ps-screen,38161 /users/tom/bin/ps-screen
└─ps-screen,38164 /users/tom/bin/ps-screen
└─pstree,38169 -p -a 38141
3975.pts-0.vmw-debian7-64 (10/23/2016 06:15:28 AM) (Attached)
screen,3974
└─screen,3975
├─tcsh,5002
│ └─ded,19926 /usr/build//ncurses
│ └─vile,24647 /usr/build/ncurses/ncurses-6.0-20161029/NEWS
└─tcsh,36551
└─ded,36569 /tmp
Leitura adicional:
Recupere tty (pty) de screen -ls
e, em seguida, ps -t ttyname
ou ps t ttyname
exibirá a lista de processos associada a ttyname.
página do manual do ps (1) no Ubuntu tela (1) manpage no Ubuntu
Tags process gnu-screen