/etc/profile 및 /etc/environment에 대해 알고 있지만 시작 및 로그인 후에 전역 환경 변수를 설정하고 싶습니다. 소위 전역은 모든 프로그램(현재 사용자로 실행)에서 액세스할 수 있는 환경 변수를 나타냅니다.
기본적으로 부팅 후 10분 등 특정 시점에 전역 환경 변수를 설정하는 스크립트를 실행할 수 있기를 원합니다. 가능합니까?
배경
Ubuntu 14.04에서 gpg-agent를 사용하는 데 몇 가지 문제가 있습니다. 프로그램은 환경 변수를 사용하여 gpg-agent 프로세스에 연결합니다. 내 문제는 gpg-agent의 여러 인스턴스를 실행하는 것입니다(그 중 하나만 ssh 지원이 활성화되어 있습니다). 기존 gpg-agent 인스턴스를 모두 종료하고 ssh 지원을 통해 새 인스턴스를 시작할 수 있기를 원합니다. 그러나 다른 프로그램이 새 인스턴스에 액세스할 수 있으려면 환경 변수를 전역으로 만들어야 합니다. 시작하는 동안 이 작업을 수행하면 다른 gpg 에이전트가 내 이후에 시작되어 환경 변수를 대체하는 것처럼 보이기 때문에 나에게는 효과가 없습니다.
답변1
때때로 나는 밀접하게 관련된 문제에 직면합니다. ssh-agent
그래픽 데스크탑의 보호를 받는 컴퓨터에서 실행 중이지만 동일한 컴퓨터에 원격으로 액세스합니다 . 이 쉘에는 환경 변수가 없습니다.
이를 위해 /proc
Bash 프로세스를 찾아 해당 항목을 가져오고 변수를 /proc/<pid>/environ
찾는 스크립트를 사용합니다 . 그런 다음 이러한 항목을 셸 구문으로 다시 생성하므로 전체 "env 스크래핑 스크립트"를 새 셸에서 편집할 수 있습니다.SSH_AGENT_PID
SSH_AGENT_SOCK
eval
/proc
기본적으로 " 다른 Bash-es가 프록시 변수에 사용하는 것을 찾아 이 세션에서 재현"합니다.