동일한 프로세스는 다른 세션에서 보면 /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

이제 두 번째 프로세스에 대해

$test=two
$vim test2

pid = 1201, 프로세스를 중지하려면 CTRL-Z를 사용하세요.

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

사용자가 프로그램을 실행하기 전에 환경 속성을 변경했을 수 있습니다.

관련 정보