起動後にグローバル環境変数を作成する

起動後にグローバル環境変数を作成する

/etc/profileと/etc/environmentについて知っていますが、起動とログイン後にグローバル環境変数を設定したいと思います。いわゆるグローバルは、すべてのプログラム(現在のユーザーとして実行)からアクセスできる環境変数を表します。

デフォルトでは、起動後10分など、特定の時点でグローバル環境変数を設定するスクリプトを実行できるようにしたいです。可能ですか?

背景

Ubuntu 14.04でgpg-agentを使用する際にいくつかの問題があります。プログラムは環境変数を使用してgpg-agentプロセスに接続します。私の問題はgpg-agentの複数のインスタンスを実行することです(そのうちの1つだけがsshサポートが有効になっています)。既存のgpg-agentインスタンスをすべて終了し、sshサポートを使用して新しいインスタンスを起動できるようにしたいです。ただし、他のプログラムが新しいインスタンスにアクセスできるようにするには、環境変数をグローバルに作成する必要があります。起動中にこれを行うと、他のgpgエージェントが私の後で起動し、環境変数を置き換えるように見えるため、私には効果がありません。

ベストアンサー1

時々私は密接に関連する問題に直面します。ssh-agentグラフィックデスクトップの保護されたコンピュータで実行されていますが、同じコンピュータにリモートでアクセスします。このシェルには環境変数はありません。

これを行うには、/procBashプロセスを見つけてそのエントリを取得し、変数を見つけるための/proc/<pid>/environスクリプトを使用します。その後、これらの項目はシェル構文で再生成されるため、「envスクレイピングスクリプト」全体を新しいシェルで編集できます。SSH_AGENT_PIDSSH_AGENT_SOCKeval

/procデフォルトでは、「別のBash-esがプロキシ変数に使用していることを見つけて、このセッションで再現」します。

おすすめ記事