Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Обновить environment без перезагрузки  (Прочитано 10021 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн ITdreamer

  • Автор темы
  • Новичок
  • *
  • Сообщений: 35
    • Просмотр профиля
Ребята, подскажите, а можно как-то обновить environment variables без перезагрузки?
К примеру, если я добавил новые переменные в /etc/environment. Просто мне часто приходится настраивать различные проги и я часто делаю изменения в этом файле. Было бы здорово, если бы я мог применять изменения, которые внес без перезагрузки. Но я не знаю как. Подскажите?

Оффлайн vasilisc

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2563
  • г.Северодвинск - строим АПЛ
    • Просмотр профиля
    • Авторские статьи об OpenSource
Re: Обновить environment без перезагрузки
« Ответ #1 : 16 Июля 2009, 17:09:15 »
может так? для примера в переменную VAS запихиваем значение vas
$ export VAS=vas
$ printenv|grep vas
VAS=vas

Оффлайн ITdreamer

  • Автор темы
  • Новичок
  • *
  • Сообщений: 35
    • Просмотр профиля
Re: Обновить environment без перезагрузки
« Ответ #2 : 16 Июля 2009, 17:31:19 »
К сожалению, не то. Это позволит только создать переменную в той сессии терминала, которая загружена. Но, если я после этого терминал закрою, а потом снова открою, то этой переменной уже не будет.

Я просто думал, что может есть какая-нибудь команда типа env-update или что-то в этом роде. Кто-нить знает, есть что нить похожее на это?
Просто я записываю переменные в /etc/environment, т.к. это глобальные переменные для всех пользователей. Вот мне и нужно, чтобы если я что-то туда добавил, как-то обновить environment, чтобы у всех пользователей вступили в силу новые глобальные переменные. В винде так можно сделать через Мой-компьютер, вот я и подумал, может есть что-то похожее Ubuntu. Думаю, что должно быть, ведь некоторые линукса годами не перегружают.

Пользователь решил продолжить мысль 16 Июля 2009, 23:47:20:
Неужели этого нельзя сделать? Странно!
« Последнее редактирование: 16 Июля 2009, 23:47:20 от ITdreamer »

Оффлайн vasilisc

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2563
  • г.Северодвинск - строим АПЛ
    • Просмотр профиля
    • Авторские статьи об OpenSource
Re: Обновить environment без перезагрузки
« Ответ #3 : 17 Июля 2009, 08:11:15 »
вот здесь на англ
http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.files/doc/aixfiles/environment.htm

пишут что изменения подхватываются сами сразу
если прога уже запущена ее достаточно рестартовать
"Environment variables are examined when a command starts running. The environment of a process is not changed by altering the /etc/environment file. Any processes that were started prior to the change to the /etc/environment file must be restarted if the change is to take effect for those processes. If the TZ variable is changed, the cron daemon must be restarted, because this variable is used to determine the current local time."

но у меня чего то не получается на тестовом примере
нашел еще тут
http://publib.boulder.ibm.com/infocenter/printer/v1r1/index.jsp?topic=/com.ibm.printers.ipmaix/com.ibm.printers.aixprocedures/iprx4mst181.htm

но там AIX - это коммерческий UNIX от IBM и там после правки советуют команду
Make the change effective by entering the command:
. ./etc/environment
тоже ничего не получилось  :-[   
будем копать!

Оффлайн Kwah

  • Старожил
  • *
  • Сообщений: 1442
  • Ubuntu 17.10
    • Просмотр профиля
Re: Обновить environment без перезагрузки
« Ответ #4 : 17 Июля 2009, 13:57:16 »
пишут что изменения подхватываются сами сразу
если прога уже запущена ее достаточно рестартовать
"Environment variables are examined when a command starts running. The environment of a process is not changed by altering the /etc/environment file. Any processes that were started prior to the change to the /etc/environment file must be restarted if the change is to take effect for those processes. If the TZ variable is changed, the cron daemon must be restarted, because this variable is used to determine the current local time."
Не сами и не сразу, и речь не о программах а о процессах. В общем, насколько я это понимаю, при запуске команды запускается пачка процессов, которые наследуют настройки среды исполнения (и переменных окружения) от родительского процесса. При работе в GNOME мимимальные действия, которые нужно проделать, завершить сеанс/начать сеанс, тогда изменения в /etc/environment подхватятся. Точно также, как в консольной сессии: выход/вход.

Как вариант, можно попробовать воткнуть что-то типа source /etc/environment в, скажем ~/.bashrc тогда он будет подхватываться при перезапуске терминала/баша. Не знаю, насколько это правильно. Думаю лучше спросить у разработчиков.

С другой стороны, идея складывать настройки программы (как я понял) в /etc/environment кажется мне далекой от правильного решения  :coolsmiley:

 

Страница сгенерирована за 0.028 секунд. Запросов: 24.