В Ubuntu 16.04 с LXDE или Gnome,
как я могу узнать переменные среды, созданные, когда Ubuntu была запущена с графического интерфейса?
когда Ubuntu была запущена с графического интерфейса, которые запускаются, файлы читаются и выполняются, /etc/profile
, /etc/profile.d/*
, ~/.profile
, ~/.bash_profile
, /etc/environment
, /etc/bash.bashrc
, ~/.bashrc
?
Спасибо.
Это довольно сложно.
Pam также может добавить переменные среды, а также другие вещи (login
программа, getty
, безотносительно...).
Что я раньше делал, должны добавить строки стиля (см. это),
export CALLED_IN_ETC_PROFILE=$(date date +%s.%N)
во всех подозрительных файлах, и затем смотрят на результат, например, с помощью https://askubuntu.com/a/356973/16395.
Для нахождения, какая программа/файл могла быть ответственна за установку переменной можно попытаться посмотреть на дерево процесса оболочки в эмулятор терминала:
[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
запускается с пользовательской оболочки (обратите внимание на изменения UID в цепочке) в неинтерактивном режиме, так, чтобы .profile
читается (но нет .bashrc
, который читается оболочкой в эмуляторе терминала).
Дерево несколько отличается, если названо от 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
но это ожидается.
BTW, много переменных среды могло также быть установлено перед изменением UID в пользователе; существует много сценариев в /etc/X11/Xsession.d
и вокруг этого X
сервер, gdm
(или какой бы ни менеджер по оформлению, которого Вы используете), который может установить переменные среды.