Назад | Перейти на главную страницу

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

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

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

Это зависит.

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

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

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

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

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

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

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

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

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

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