登录后在桌面进程中设置环境变量

登录后在桌面进程中设置环境变量

我可以设置环境变量由所有进程继承~/.profile。这是有效的,因为桌面环境(例如 gnome-shell)在登录时运行此文件。然后 gnome-shell 更新它自己的环境变量。因为每个进程(firefox、xterm、emacs)都以 gnome-shell 作为祖先,所以它们继承了这些环境变量。

有没有办法在登录后更新此进程(gnome-shell)中的环境变量?我设想类似的东西

$ xdg-set FOO=BAR

然后在新终端中您可以立即看到

$ echo $FOO
BAR

答案1

环境以与命令行参数类似的方式传递给新进程:它们被复制到新进程的地址空间中。它们不是“通过引用”传递的,因此某些祖先进程环境的更改不会反映在后代进程中。

这意味着您只能通过操作进程本身来更改进程的环境,并且只有当进程提供了这样做的方法时,例如在 shell 中设置变量。环境中的这种变化通常会反映在该进程可能产生的任何子进程中。

相关内容