[Comm] bashrc, bashrc.d и неинтерактивный shell

Sergey Vlasov =?iso-8859-1?q?vsu_=CE=C1_altlinux=2Eru?=
Сб Ноя 15 11:49:35 MSK 2008


On Sat, Nov 15, 2008 at 11:27:59AM +0600, Denis G. Samsonenko wrote:
> Озаботился я тем, чтобы в системе были определены переменные
> http_proxy и ftp_proxy. При подъёме сети в зависимости от профиля у
> меня генерится файл /etc/bashrc.d/proxy.sh с соответствеющим
> содержимым. Вроде бы всё хорошо, но есть одно но.
> 
> Скрипты из /etc/bashrc.d запускаются только при интерактивном shell.
> Отсюда у меня такой косяк: если запускать firefox, например, из
> эмулятора терминала, то для получающегося процесса переменные
> http_proxy и ftp_proxy определены; если же запускать из меню KDE, то
> http_proxy и ftp_proxy не определены.
> 
> Есть ли специальное место для скриптов, которые должны запускаться при
> старте оболочки в не зависимости, интерактивная она или нет, кроме
> ручной правки /etc/bashrc?

Для /bin/sh - нет; для /bin/bash читается $BASH_ENV, но использование
этого файла для модификации поведения неинтерактивной оболочки может
повлиять на работу скриптов.

На самом деле достаточно экспортировать переменные один раз - при
входе пользователя; для этого генерируемый файл нужно переместить в
/etc/profile.d/proxy.sh (при входе в X запускается /etc/X11/Xsession,
где в качестве интерпретатора явным образом указан /bin/bash -login).
Такой вариант подходит для случая, когда в процессе работы прокси не
меняется.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: Digital signature
Url     : <http://lists.altlinux.org/pipermail/community/attachments/20081115/513200f4/attachment.bin>


Подробная информация о списке рассылки community