Wh Command I Runnning Dentro de uma 'tela'?

1

Eu fiz o login em um servidor.Em seguida, emiti o comando "screen -list", que dá a seguinte saída -

There is a screen on:
11048.pts-0.devops (Detached)
27563.pst-0.devops (Detached)
1 Socket in /var/run/screen/S-root.

Agora eu tenho que terminar uma das sessões de tela usando "screen -S -X quit". Antes de terminar quero saber qual comando está sendo executado na tela.Por exemplo, eu corri './startup.sh' (para tomcat) na tela com id '11048', mas eu esqueci. Existe alguma maneira de descobrir qual comando é executado sob essa tela com id 11048?

Obrigado antecipadamente

    
por Razib 17.07.2014 / 00:40

1 resposta

3

A sintaxe para abrir a tela é:

screen -r <pid>

para que a primeira tela seja "screen -r 11048" - para separar a tela novamente digite ctrl + a d (como em hold ctrl enquanto aperta a, solte depois, e depois d). Uma vez na tela, você também pode usar Ctrl + A "para navegar entre as telas. Além disso, você deve saber que se você simplesmente matar 11048, o processo em execução na tela 11048 continuará funcionando após a tela ser encerrada.

---- edit ----

Ah, entendo o que você quer dizer. Tente rastrear os processos filhos:

seqb [~]# ps -ef | grep SCREEN
505       5835     1  0 Jun30 ?        00:00:01 SCREEN
505      19501     1  0 Feb27 ?        00:00:00 SCREEN
505      21852     1  0 Mar02 ?        00:00:07 SCREEN
root     22035 22006  0 19:05 pts/2    00:00:00 grep SCREEN
root     29668     1  0 Jul08 ?        00:00:00 SCREEN
seqb [~]# ps -ef | grep 29668
root     22038 22006  0 19:06 pts/2    00:00:00 grep 29668
root     29668     1  0 Jul08 ?        00:00:00 SCREEN
root     29669 29668  0 Jul08 pts/0    00:00:00 /bin/bash
seqb [~]# ps -ef | grep 29669
root     22047 29669  0 19:08 pts/0    00:00:00 sleep 600
root     22049 22006  0 19:08 pts/2    00:00:00 grep 29669
root     29669 29668  0 Jul08 pts/0    00:00:00 /bin/bash

então, quando você procurar pelo pid da tela em ps -ef (29668), você também obterá o processo que considera o SCREEN como pai. Isso geralmente será festivo. Então, quando você procurar pelo pid do bash, você encontrará o processo em execução no bash, nesse caso, "sleep 600". Execute ps -ef | cabeça -1 se não faz sentido.

Há também um atalho - a tela mantém as últimas 500 linhas na memória. Digite ctrl + a [e, em seguida, a tecla para cima. Você pode ir para o topo da saída, se houver menos de 500 linhas de saída, você poderá ver qual comando está sendo executado.

    
por 17.07.2014 / 01:02