.xinitrc
次の行を含むファイルを取得します。
# it will start my window manager
ssh-agent dwm
その後、プロセスを取得しましたが、端末で実行したときなどの
ssh-agent
環境変数は存在しませんでした。どんなアイデアがありますか?$SSH_AGENT_PID
$SSH_AUTH_SOCK
dwm
プロセスが1つだけあったらと思います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を実行した後にターミナルを開くと、エージェントがロードされたと表示されます。