如何查看 Ubuntu 以图形界面启动时读取的启动文件和创建的环境变量

如何查看 Ubuntu 以图形界面启动时读取的启动文件和创建的环境变量

在带有 LXDE 或 Gnome 的 Ubuntu 16.04 中,

  • 如何找出 Ubuntu 以图形界面启动时创建的环境变量?

  • Ubuntu以图形界面启动时,读取 并执行哪些启动/etc/profile文件,,,,,,,?/etc/profile.d/*~/.profile~/.bash_profile/etc/environment/etc/bash.bashrc~/.bashrc

谢谢。

答案1

这相当复杂。

帕姆还可以添加环境变量,以及其他东西(login程序,getty等等......)。

我过去常常做的是添加样式的线条(参见

export CALLED_IN_ETC_PROFILE=$(date date +%s.%N) 

在所有可疑文件中,然后查看结果,例如使用https://askubuntu.com/a/356973/16395

要查找哪个程序/文件可能负责设置变量,您可以尝试查看终端仿真器中 shell 的进程树:

[romano:/etc/X11/Xsession.d] % pstree -a -s -l -p -u $$
systemd,1 splash
  └─gdm3,1926
      └─gdm-session-wor,3752
          └─gdm-x-session,3807,romano --run-script gnome-session --session=gnome
              └─upstart,3824 --user
                  └─gnome-terminal-,5027
                      └─zsh,11224
                          └─pstree,11831 -a -s -l -p -u 11224

...我思考要启动图形会话,gdm-x-session需要从非交互模式下的用户 shell 启动(注意链中的 UID 变化),因此可以.profile读取(但不能.bashrc,它是由终端仿真器中的 shell 读取的)。

如果从以下方式调用,该树会有所不同gnome-shell

bash-4.3$ pstree -a -s -l -p -u $$
systemd,1 splash
  └─gdm3,1926
      └─gdm-session-wor,3752
          └─gdm-x-session,3807,romano --run-script gnome-session --session=gnome
              └─upstart,3824 --user
                  └─gnome-session-b,4162 --session=gnome
                      └─gnome-shell,4278
                          └─xterm,11882 -e bash --noprofile --norc
                              └─bash,11884 --noprofile --norc
                                  └─pstree,11885 -a -s -l -p -u 11884

但这是预料之中的。

顺便说一句,在 UID 更改为用户之前也可以设置许多环境变量;服务器内部/etc/X11/Xsession.d和周围有很多脚本(或您使用的任何显示管理器),可以设置环境变量。Xgdm

相关内容