`nsenter /bin/bash`에서 환경을 설정하세요.

`nsenter /bin/bash`에서 환경을 설정하세요.

Enter Namespace를 사용하고 있습니다 nsenter -m -u -i -n -p -t $PID /bin/bash. 그러나 printenv필요한 모든 것이 이 네임스페이스에 없습니다. 이러한 변수를 보내고 싶지만 bash 명령 앞에 KEY=VALUE KEY2=VALUE2 /bin/bash.

더 좋은 방법이 있나요?

답변1

지금은 더 많은 작업을 수행할 수 없지만 을 사용 --rc-file하거나 --profile,스위치가 전환될 때까지 기다리시면 될 것 같습니다.

man bash

...

bash가 sh 이름으로 호출되면 POSIX 표준을 준수하면서 sh의 이전 버전의 시작 동작을 최대한 가깝게 모방하려고 시도합니다. --login 옵션을 사용하여 대화형 로그인 셸 또는 비대화형 셸로 호출되면 먼저 /etc/profile 및 ~/.profile에서 명령을 순서대로 읽고 실행하려고 시도합니다. --noprofile 옵션을 사용하면 이 동작을 억제할 수 있습니다. sh라는 이름의 대화형 셸로 호출되면 bash는 변수 ENV를 찾고 해당 값이 정의되어 있으면 확장한 다음 확장된 값을 읽고 실행할 파일 이름으로 사용합니다. sh로 호출된 쉘은 다른 시작 파일에서 명령을 읽고 실행하려고 시도하지 않으므로 --rcfile 옵션은 효과가 없습니다. sh라는 이름으로 호출된 비대화형 쉘은 다른 시작 파일을 읽으려고 시도하지 않습니다. sh로 호출되면 bash는 시작 파일을 읽은 후 posix 모드로 들어갑니다.

--posix 명령줄 옵션과 같이 bash가 posix 모드에서 시작되면 시작 파일에 대한 POSIX 표준을 따릅니다. 이 모드에서 대화형 셸은 ENV 변수를 확장하고 확장된 값으로 명명된 파일에서 명령을 읽고 실행합니다. 다른 시작 파일은 읽혀지지 않습니다.

관련 정보