Как узнать начальные файлы чтения и переменные среды, созданные при запуске Ubuntu с графическим интерфейсом

В Ubuntu 16.04 с LXDE или Gnome,

, как я могу узнать переменные среды, созданные при запуске Ubuntu с графическим интерфейсом? когда Ubuntu был запущен с графическим интерфейсом, какие файлы запуска считываются и выполняются, /etc/profile, /etc/profile.d/*, ~/.profile, ~/.bash_profile, /etc/environment, /etc/bash.bashrc, ~/.bashrc?

Спасибо.

0
задан 17 April 2018 в 18:38

2 ответа

Это довольно сложно.

Пэм также может добавлять переменные среды, а также другие вещи (login program, getty, независимо ...).

То, что я использовал, это добавить строки стиля (см. Pam )

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 имеется множество скриптов X, gdm (или любого другого диспетчера дисплея), который может устанавливать переменные среды.

1
ответ дан 17 July 2018 в 16:39

Это довольно сложно.

Пэм также может добавлять переменные среды, а также другие вещи (login program, getty, независимо ...).

То, что я использовал, это добавить строки стиля (см. Pam )

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 имеется множество скриптов X, gdm (или любого другого диспетчера дисплея), который может устанавливать переменные среды.

1
ответ дан 23 July 2018 в 17:30
  • 1
    Благодарю. Я обнаружил, что в оболочке, начинающейся с Alt + F2 и lxterminal -e bash --noprofile --norc, PATH содержит путь I, установленный в ~/.profile. Значит ли это, что Ubuntu читает и выполняет ~/.profile, когда он запускается с графическим интерфейсом? Какие файлы запуска делают ваш Ubuntu для чтения и выполнения, когда он запускается с графическим интерфейсом? – Tim 17 April 2018 в 19:03

Другие вопросы по тегам:

Похожие вопросы: