システム全体の環境変更を取得するには?

システム全体の環境変更を取得するには?

Bashを使用するほとんどの* nix環境では、環境変数~/.bash_profileまたはユーザーローカルの同様のファイルを変更し、変更がセッションsourceに適用されるように変更されたファイルを変更します。

同様に、変更後にsourceing を実行すると、/etc/profileその変更が現在のセッションに適用されます。

/etc/profileしかし、(またはその下のどこかに)定義された/etc/profile.d/環境変数を変更する必要があり、システム内のすべてのユーザーのすべてのセッションで変更がすぐに表示されることを望んでいるとします。システムを再起動せずにこれを達成するにはどうすればよいですか?

ベストアンサー1

ログインしたすべてのユーザーを強制的にログオフして再度ログインすることができます(そして/ etc / profileを使用して、シェルで開始されたすべてのデーモンを終了して再起動します)。再起動は必要ありません。

それ以外はできません。

source /etc/profileあなたができることは、新しい定義が必要な各シェルセッションから別々に/ etc / profileをインポートすることです...しかし、これは実際に実行または使用できるシェルにのみ影響します. /etc/profile。たとえば、環境Aなど、既存のシェルを直接変更することはできません。すでに実行中のプロセス(例:実行中のXセッション)

サブプロセスできない親プロセスの環境を変更します。とにかく直接的ではありません(親プロセスできる自分の環境を変えることを含め、子どもが行うことを観察し、それに応じて行動します。しかし、これはまったく異なるものであり、親プロセスにプログラムする必要があります。)

おすすめ記事