同じプロセスは、別のセッションで見ると、/proc/pid/environに異なる環境変数があります。なぜ?

同じプロセスは、別のセッションで見ると、/proc/pid/environに異なる環境変数があります。なぜ?

vncセッション内で開始されたxterm bashプロセスの環境変数を確認しています。

envを実行してbashセッション自体の環境変数を確認したり、cat /proc/pid/environ | stringssuまたはsshを実行したときに通常設定するすべての環境変数、つまり/ etc / profileおよび.bashrcの環境変数を表示します。ただし、cat /proc/pid/environ | stringsパテセッションでこれを行うと、まったく異なる変数が表示されます。

その特定の変数だけを設定する理由は次のように考えています。同じプロセス環境が別のセッション(二重スリット実験など)で調査された場合、なぜ異なる結果が出るのかを知りたいと思います。私はprocが実際のファイルシステムではないことを知っています。しかし、照会すると正確に何が起こりますか? procはリモートプロセス環境をチェックする安定した方法ではありませんか?

私はこの質問を携帯電話に書いた。したがって、表示するサンプル出力はありません。しかし、私の質問を理解してください。

ベストアンサー1

これが私がテストのためにしたことです:

$export test=one
$vim test1

pid = 1200、プロセスを停止するにはCTRL-Zを使用してください。

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

今、2番目のプロセスについて

$test=two
$vim test2

pid = 1201、プロセスを停止するにはCTRL-Zを使用してください。

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

ユーザーがプログラムを実行する前に環境属性を変更した可能性があります。

おすすめ記事