Разве /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 исправил это для меня.