Como obter informações sobre um processo Linux em execução

1

Como posso obter as seguintes informações para um processo Linux em execução:

  • variáveis de ambiente do shell
  • diretório de trabalho
  • opções de linha de comando
por user28795 29.08.2017 / 12:07

2 respostas

3

Você pode obter essas informações do sistema de arquivos / proc , ele armazena informações sobre a execução processos.

  • cat /proc/<pid>/environ
  • cd /proc/<pid>/cwd; pwd -P
  • cat /proc/<pid>/cmdline
por 29.08.2017 / 12:40
2

Se você gerar o ambiente conforme sugerido por @atype, obterá todas as variáveis de ambiente e seus valores concatenados sem separador.

Para um melhor resultado, use

$ xargs -0 -L 1 echo < /proc/21645/environ 
LANG=en_US.UTF-8
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
SHELL=/bin/bash
TERM=xterm
LC_MESSAGES=en_US.UTF-8
LANGUAGE=en_US.UTF-8

(saída encurtada por motivos de privacidade)

Explicação

/ proc / $ pid / environ contém as variáveis de ambiente como uma lista separada por nulos.

xargs é uma ferramenta para ler uma lista arbitrariamente longa de * STDIN e alimenta seus elementos para uma ferramenta (echo, neste caso) garantindo que não exceda o comprimento máximo da linha de comando. O parâmetro "-0" comuta xargs para usar nulo como separador de item (em vez do padrão em branco ou nova linha). O parâmetro "-L 1" limita o número de itens a 1. Assim, cada variável de ambiente é enviada em uma nova linha.

    
por 29.08.2017 / 15:46

Tags