Bashを使用するほとんどの* nix環境では、環境変数~/.bash_profile
またはユーザーローカルの同様のファイルを変更し、変更がセッションsource
に適用されるように変更されたファイルを変更します。
同様に、変更後にsource
ing を実行すると、/etc/profile
その変更が現在のセッションに適用されます。
/etc/profile
しかし、(またはその下のどこかに)定義された/etc/profile.d/
環境変数を変更する必要があり、システム内のすべてのユーザーのすべてのセッションで変更がすぐに表示されることを望んでいるとします。システムを再起動せずにこれを達成するにはどうすればよいですか?
ベストアンサー1
ログインしたすべてのユーザーを強制的にログオフして再度ログインすることができます(そして/ etc / profileを使用して、シェルで開始されたすべてのデーモンを終了して再起動します)。再起動は必要ありません。
それ以外はできません。
source /etc/profile
あなたができることは、新しい定義が必要な各シェルセッションから別々に/ etc / profileをインポートすることです...しかし、これは実際に実行または使用できるシェルにのみ影響します. /etc/profile
。たとえば、環境Aなど、既存のシェルを直接変更することはできません。すでに実行中のプロセス(例:実行中のXセッション)
サブプロセスできない親プロセスの環境を変更します。とにかく直接的ではありません(親プロセスできる自分の環境を変えることを含め、子どもが行うことを観察し、それに応じて行動します。しかし、これはまったく異なるものであり、親プロセスにプログラムする必要があります。)