O mesmo processo tem diferentes variáveis ambientais em / proc / pid / environ quando visto de sessões diferentes. Por quê?

1

Eu estava verificando variáveis ambientais do processo bash de um xterm que foi iniciado dentro da sessão vnc.

Se eu verificar as variáveis ambientais da própria sessão do bash executando env ou cat /proc/pid/environ | strings , ela mostrará todas as variáveis ambientais que geralmente seriam definidas quando fizermos su ou ssh, por exemplo, de / etc / profile e .bashrc. Mas quando eu faço cat /proc/pid/environ | strings de uma sessão putty, mostra variáveis completamente diferentes.

Deixando de lado por que apenas essas variáveis específicas são definidas, quero saber por que o ambiente do mesmo processo tem resultados diferentes quando verificado em sessões diferentes, como um experimento de dupla fenda. Eu entendo que proc não é um sistema de arquivos real. Mas o que exatamente está acontecendo quando eu estou consultando isso e por isso é proc maneira não confiável para verificar o ambiente de processo remoto?

Eu escrevi a pergunta do meu telefone. Então, eu não tenho nenhum exemplo de saída para mostrar. Mas espero que você tenha a minha pergunta.

    
por GP92 03.01.2018 / 18:18

1 resposta

1

Aqui está o que eu fiz para um teste:

$export test=one
$vim test1

pid = 1200, Parou o processo com CTRL-Z

$cat /proc/1200/environ | strings
test=one

Agora, para o segundo processo

$test=two
$vim test2

pid = 1201, Parou o processo com CTRL-Z

$cat /proc/1201/environ | strings
test=two

O usuário pode ter alterado as propriedades do ambiente antes de executar o programa.

    
por 03.01.2018 / 19:00