Как после загрузки установить переменную окружения на всю систему?
Модератор: Bizdelnick
-
ddc
- Бывший модератор
- Сообщения: 3535
- Статус: OpenBSD-compatible
- ОС: OpenBSD -current
Как после загрузки установить переменную окружения на всю систему?
Давно интересовал этот вопрос, а теперь есть и практическое применение: я использую ноутбук то на работе, то дома, то в ВУЗе. Везде свои настройки подключения к интернет, в том числе и прокси. Если я экспортирую настройки прокси после загрузки, они действуют только в том терминале, где я это сделал. А как их можно экспортировать сразу на всю систему?
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Как после загрузки установить переменную окружения на всю систему?
~/.bashrc, /etc/environment не подойдут?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
Bolverk
- Бывший модератор
- Сообщения: 1571
- ОС: Cygwin
Re: Как после загрузки установить переменную окружения на всю систему?
/etc/profile, в /etc/profile.d можно отдельные скрипты кидать (как это делают пакеты)
-
madskull
- Сообщения: 1019
- Статус: Экс-металлюга
Re: Как после загрузки установить переменную окружения на всю систему?
Я у себя делал скрипт в /etc/rc.d/, который при загрузке пинговал рабочий гейт - если успешно, то настройки "рабочие. Если нет, пинговался домашний, опять же, при успехе - настройки домашние. Ну а нет, значит и сети нет. При этом еще выставлялась переменная, которая анализировалась при старте icewm - там тоже кой-какие местозависимые вещи творились.
А вообще, для этих целей как нельзя лучше подходит dhcp. При условии, конечно, что оно есть везде.
А вообще, для этих целей как нельзя лучше подходит dhcp. При условии, конечно, что оно есть везде.
ArchLinux / IceWM
-
ddc
- Бывший модератор
- Сообщения: 3535
- Статус: OpenBSD-compatible
- ОС: OpenBSD -current
Re: Как после загрузки установить переменную окружения на всю систему?
sash-kan
Они при загрузке используются, а мне нужно во время работы менять, как это в KDE делается...
Bolverk
Не понял мысль. Можно подробней?
madskull
Проблема в том, что дома я подключаюсь по одному интерфейсу, а на работе - по другому. При этом dhcp без указания интерфейса работает очень долго, себе дешевле ручками делать. И всё-таки это не решает проблему публикации переменной окружения в работающей системе.
Они при загрузке используются, а мне нужно во время работы менять, как это в KDE делается...
Bolverk
Не понял мысль. Можно подробней?
madskull
Проблема в том, что дома я подключаюсь по одному интерфейсу, а на работе - по другому. При этом dhcp без указания интерфейса работает очень долго, себе дешевле ручками делать. И всё-таки это не решает проблему публикации переменной окружения в работающей системе.
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: Как после загрузки установить переменную окружения на всю систему?
Да вроде как вопрос неправильный... Делается ли это вообще? После запуска приложения - нет. Т.к. каждая программа имеет свой блок переменных среды, который ей передаётся родителем.
-
Bolverk
- Бывший модератор
- Сообщения: 1571
- ОС: Cygwin
Re: Как после загрузки установить переменную окружения на всю систему?
я читал невнимательно и пропустил слова "после загрузки".
точнее, /etc/profile и исполняемые файлы, лежащие в /etc/profile.d, отрабатывают при логине пользователя до его личных настроек (.profile, .bashrc, ...) и могут устанавливать переменные. Упаковщики кладут туда скрипты, выставляющие переменные, необходимые для работы приложений.
-
ddc
- Бывший модератор
- Сообщения: 3535
- Статус: OpenBSD-compatible
- ОС: OpenBSD -current
Re: Как после загрузки установить переменную окружения на всю систему?
Bolverk
Ну примерно так оно у меня происходит сейчас (было три режима, каждый на своём уровне исполнения: без сети, дом и офис), но уже не устраивает в связи с расширением вариантов.
serzh-z
Простой эксперимент:
Ну примерно так оно у меня происходит сейчас (было три режима, каждый на своём уровне исполнения: без сети, дом и офис), но уже не устраивает в связи с расширением вариантов.
serzh-z
Простой эксперимент:
- задайте неправильные настройки прокси;
- запустите Akregator, получите ошибки сбора;
- исправьте настройки;
- нажмите в Akregator кнопку принудительного сбора; всё соберётся!
-
elide
- Бывший модератор
- Сообщения: 2421
- Статус: Übermensch
- ОС: лялих
Re: Как после загрузки установить переменную окружения на всю систему?
а просто ядру параметры передавать?но уже не устраивает в связи с расширением вариантов.
слава роботам!
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: Как после загрузки установить переменную окружения на всю систему?
Не знаю, что есть Akregator, но полагаю, что тут дело не в нём. Вероятно речь идёт о emerge (и сборке Акрекатора). Т.е. изначально запускаются скрипты bash, bash при запуске читает свои дот-файлы (или параметры в /etc). Потом уже отсюда http_proxy передаются дочерним процесам - т.е. emerge. Разумеется, если поправить настройки (в .bash_rc, .bash_profile и т.д.), и перезапустить сборку, то будут использованы новые дот-файлы.
Т.е. в любом случае всё упирается в то, что после запуска приложения нельзя заставить его увидеть новые переменные среды.
Если же необходимо сделать так: поменять переменные и увидеть их новые значения в эмуляторе терминала (т.е. новые значения будут распространяться лишь на этот терминал его его потомков), то разве просто перезапуск терминала (в котором запуститься, скажем, bash - перечитает свои настройки и т.д. и т.п.) не даёт этого результата?
-
ddc
- Бывший модератор
- Сообщения: 3535
- Статус: OpenBSD-compatible
- ОС: OpenBSD -current
Re: Как после загрузки установить переменную окружения на всю систему?
serzh-z
Да я это всё знаю. Я не знаю, как присвоить переменную уже запущенному процессу. И естественно речь идёт не о установке переменных для терминала и потомков - для этого есть export.
Да я это всё знаю. Я не знаю, как присвоить переменную уже запущенному процессу. И естественно речь идёт не о установке переменных для терминала и потомков - для этого есть export.
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu