Identifique em qual instância de tela um processo está sendo executado

6

Um processo de escuta na porta 8113 (Solr) não está respondendo. Eu encontrei seu PID via netstat , mas o servidor tem cerca de duas dúzias de processos do Solr sendo executados em várias screen sessões.

3607.foobar-client2  (12/27/14 20:54:02)     (Detached)
3797.solr.bo.app    (12/25/14 11:51:30)     (Detached)
2962.solr       (12/25/14 11:47:23)     (Detached)
1410.solrTester         (12/25/14 11:39:41)     (Detached)
1348.solrReports (12/25/14 11:38:41)     (Detached)
....

A única maneira que encontrei para identificá-los envolve interromper os processos. Eu tentei identificá-los por quais arquivos estão abertos por lsof , mas isso não ajudou em nada nessa circunstância. Existe alguma maneira de determinar, com base no PID, em qual screen sessão um processo está sendo executado?

    
por dotancohen 26.01.2015 / 11:23

1 resposta

4

Encontrou!

Para localizar a instância screen na qual o PID 351 está sendo executado, procure no ambiente PID 351 a string "STY=":

$ grep -z '^STY=' /proc/351/environ
STY=1410.neverFindMe

Ou usando ps (se os nomes das sessões de tela não contiverem caracteres de espaço):

$ ps wwep 351 | grep -o 'STY=\S*'
STY=1410.neverFindMe
    
por 26.01.2015 / 11:28