Eu recentemente tive que fazer isso. No Stack Overflow, eu respondi como encontrar o PID do processo em execução na tela . Depois de ter o PID, você pode usar ps
para obter o comando. Aqui está o conteúdo dessa resposta com algum conteúdo adicional para resolver sua situação:
Você pode obter o PID das sessões de tela aqui da seguinte forma:
$ screen -ls
There are screens on:
1934.foo_Server (01/25/15 15:26:01) (Detached)
1876.foo_Webserver (01/25/15 15:25:37) (Detached)
1814.foo_Monitor (01/25/15 15:25:13) (Detached)
3 Sockets in /var/run/screen/S-ubuntu.
Suponhamos que você queira o PID do programa em execução no Bash na foo_Monitor
sessão de tela. Use o PID da foo_Monitor
sessão da tela para obter o PID da bash
sessão em execução pesquisando PPIDs (PID pai) pelo PID conhecido:
$ ps -el | grep 1814 | grep bash
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 1000 1815 1814 0 80 0 - 5520 wait pts/1 00:00:00 bash
Agora obtenha apenas o PID da bash
sessão:
$ ps -el | grep 1814 | grep bash | awk '{print $4}'
1815
Agora queremos o processo com esse PID. Apenas aninhe os comandos e desta vez use o -v
sinalizador grep bash
para obter o processo que não é do bash:
$ echo $(ps -el | grep $(ps -el | grep 1814 | grep bash | awk '{print $4}') | grep -v bash | awk '{print $4}')
23869
Podemos usar esse PID para encontrar o comando (veja o final da segunda linha):
$ ps u -p 23869
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
dotanco+ 18345 12.1 20.1 5258484 3307860 ? Sl Feb02 1147:09 /usr/lib/foo
Coloque tudo junto:
$ ps u -p $(ps -el | grep $(ps -el | grep SCREEN_SESSION_PID | grep bash | awk '{print $4}') | grep -v bash | awk '{print $4}')
Que tal usar
screen -S <your-fancy-name>
para dar às sessões de tela nomes significativos de acordo com os comandos que elas executam? Os nomes serão listadosscreen -ls
e usados para retomar uma sessão porscreen -r <your-fancy-name>
.Edite para adicionar:
Desde que foi trazido à minha atenção no outro dia.
tmux
oferece o mesmo conjunto de funcionalidades quescreen
(se não mais) e vem com um recurso adequado às suas necessidades. Na FAQ: "O tmux suporta renomear automaticamente o Windows para o aplicativo em execução sem hacks brutos usando seqüências de escape. Está ativado por padrão."fonte