
/etc/profileと/etc/environmentについて知っていますが、起動とログイン後にグローバル環境変数を設定したいと思います。いわゆるグローバルは、すべてのプログラム(現在のユーザーとして実行)からアクセスできる環境変数を表します。
デフォルトでは、起動後10分など、特定の時点でグローバル環境変数を設定するスクリプトを実行できるようにしたいです。可能ですか?
背景
Ubuntu 14.04でgpg-agentを使用する際にいくつかの問題があります。プログラムは環境変数を使用してgpg-agentプロセスに接続します。私の問題はgpg-agentの複数のインスタンスを実行することです(そのうちの1つだけがsshサポートが有効になっています)。既存のgpg-agentインスタンスをすべて終了し、sshサポートを使用して新しいインスタンスを起動できるようにしたいです。ただし、他のプログラムが新しいインスタンスにアクセスできるようにするには、環境変数をグローバルに作成する必要があります。起動中にこれを行うと、他のgpgエージェントが私の後で起動し、環境変数を置き換えるように見えるため、私には効果がありません。
答え1
時々私は密接に関連する問題に直面します。ssh-agent
グラフィックデスクトップの保護されたコンピュータで実行されていますが、同じコンピュータにリモートでアクセスします。このシェルには環境変数はありません。
これを行うには、/proc
Bashプロセスを見つけてそのエントリを取得し、変数を見つけるための/proc/<pid>/environ
スクリプトを使用します。その後、これらの項目はシェル構文で再生成されるため、「envスクレイピングスクリプト」全体を新しいシェルで編集できます。SSH_AGENT_PID
SSH_AGENT_SOCK
eval
/proc
デフォルトでは、「別のBash-esがプロキシ変数に使用していることを見つけて、このセッションで再現」します。