Разве /etc/profile не должен быть получен хотя бы один раз в графической среде Linux?

Используя Gentoo и KDE 4, открытие Konsole или xterm не обеспечивает определенные вещи в /etc/profile. Этот файл обычно создается оболочкой входа, но что можно рассматривать как оболочку входа в графической среде? Это должно быть получено до X сессии? Должна ли оболочка Konsole быть настроена с помощью bash --login? Это ошибка?

Спасибо за вашу помощь.

4 ответа

Решение

Это зависит.

Если оболочка не запущена как "оболочка входа в систему", которая является системным способом оповещения оболочки о том, что пользователь впервые взаимодействует с компьютером в этом сеансе, она запускается как "дочерняя" оболочка.

Оболочки "Login" являются источником среды из любого установленного механизма управления (/etc/profile, /etc/profile.d/ и, как правило, локальных файлов точек, таких как.profile и.bashrc (если bash)).

"Дочерние" оболочки просто наследуют среду своего родителя, но иногда также запускают некоторые точечные файлы в зависимости от того, как они настроены.

В большинстве систем с настроенным X файлы точек получают из любого процесса, запускающего оконный менеджер и xterms или konsoles, или из того, что просто наследуется от этого. Это связано с тем, что он не считается сеансом входа в систему, поскольку вы уже вошли в систему, когда запустили консоль.

Вы можете настроить консоль на запуск "bash --login", если хотите, но это может привести к неожиданным побочным эффектам позже, когда вы запустите что-то, что зависит от переменной среды, которую вы забиваете с помощью параметра --login.

Согласно этой странице в Gentoo Handbook, в Gentoo вы захотите определить переменные окружения в файле под каталогом /etc/env.d, а не в самом файле /etc/profile.

Оболочка входа в систему различается (интерпретатором оболочки), начиная с "-". То есть argv[0] оболочки bash для входа в систему будет -bash Vice Bash. Аналогично для других оболочек (-ksh против ksh, -csh против csh, -sh против sh и т. Д.) Это выполняется программой входа в систему или другим этапом аутентификации. Bash предлагает опцию -l или --login, но она должна быть эквивалентна -bash.

Если вы хотите убедиться, что файл / etc / profile прочитан (а не только настраивается унаследованная среда), вы можете явно прочитать его в ~/.profile. Используйте соответствующие имена файлов для вашей оболочки по вашему выбору.

Я думаю, что это ошибка в gentoo... проверьте ваши ~/.xsession-errors на наличие ошибки, связанной с 'keychain'...

появляющийся net-misc/keychain исправил это для меня.

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