.xinitrc
다음 줄이 포함된 파일을 얻습니다 .
# it will start my window manager
ssh-agent dwm
그 후 프로세스를 얻었지만 터미널에서 실행했을 때
ssh-agent
및 같은 환경 변수가 존재하지 않았습니다. 어떤 아이디어가 있나요?$SSH_AGENT_PID
$SSH_AUTH_SOCK
dwm
프로세스가 하나만 있었으면 좋겠습니다 ssh-agent
. 각 호출은 ssh-add
시작된 에이전트에 연결되어야 합니다 dwm
.
답변1
ssh-agent
연결하는 데 필요한 환경 변수를 출력합니다. 이를 eval
호출하여 환경에 즉시 로드합니다.
왜 ssh-agent
나는 이것을 스스로 할 수 없습니까?
Unix에서 프로세스는 자신의 환경 변수만 수정하고 이를 하위 프로세스에 전달할 수 있습니다. 시스템에서 허용하지 않기 때문에 상위 프로세스의 환경을 수정할 수 없습니다. 이는 매우 기본적인 보안 설계입니다.
관련 독서이것.
따라서 `.xinitrc를 다음과 같이 남겨두십시오:
eval $(ssh-agent) &
exec dwm
답변2
dwm .xinitrc
에서 호출하려면 exec를 사용해야 합니다 . 다음은 dwm 프록시를 설정합니다.
exec ssh-agent dwm
startx를 실행한 후 터미널을 열면 에이전트가 로드된 것으로 표시됩니다.