localizando o que está sendo executado na sessão de tela

0

Eu tenho este processo de tela que abriu minha porta serial:

$ sudo lsof | grep /dev/ttyS0
    screen    23520        root    6u      CHR               4,64         0t0       1421 /dev/ttyS0
$ cd /proc/23520
$ head -n 5 status
    Name:   screen
    State:  S (sleeping)
    Tgid:   23520
    Pid:    23520
$ screen -ls
    There is a screen on:
        21200.pts-1.porkypig    (07/10/2013 12:25:42 PM)    (Detached)
$ screen -r 21200.pts-1.porkypig

Quando eu recoloquei a sessão de tela, para ver exatamente o que está fazendo. Eu vejo esse longo registro de informações. Parece o resultado de "tail -f", isto é, um log contínuo sendo produzido.

/proc/23520 $ cd cwd
 pwd
/proc/23520/cwd
ls -l
-rw-r--r--  1 root        root        2147 2013-10-07 17:55 minicom.log

Quando eu mudo para o diretório (cwd) do qual este processo foi executado, noto minicom.log, o que me faz suspeitar que o usuário executou algo como "tail -f minicom.log".

Eu sei que no linux podemos usar o histórico para rastrear os comandos que foram executados. Mas como posso confirmar que o comando foi executado para exibir o que estou vendo atualmente na minha sessão de tela?

    
por JohnMerlino 09.10.2013 / 21:57

2 respostas

0

A melhor maneira seria a strace do PID.

Por exemplo; as sessões de tela estão localizadas em /var/run/screen/<screen session> . Se você ls nesse diretório, verá o PID da sessão.

Você pode então strace -p <pid> nesse PID. Não vai ser bonito, mas é o mais próximo que você vai conseguir.

    
por user1529891 09.10.2013 / 22:16
0

No seu caso, o PID da tela é 21200 (de acordo com o comando screen -ls ). Então pstree 21200 serve. Da mesma forma, htop no modo de árvore (pressione [F5]) também verá a árvore de processos.

    
por Luke Lee 12.10.2016 / 10:57