Как перезагрузить переменные окружения в .profile, используя исходный код для всего сеанса? [дубликат]

На этот вопрос уже есть ответ здесь:

Так что мне нужно перезагрузить мой профиль после внесения изменений (на этот раз из-за опечатки). Я запускаю source ~ / .profile , и все работает отлично.

Однако команда source применяется только к этому терминальному сеансу. Это означает, что я запускаю команду каждый раз, когда открываю новый терминал. Я хочу найти способ применить переменные .profile / среды ко всему пользовательскому сеансу без выхода из системы, а не только к текущему терминалу.

Есть ли пакет или команда, которые могут выполнить этот тип изменения, перезагрузив профиль, как он загружается при входе в систему?

РЕДАКТИРОВАТЬ: Чтобы уточнить, что это не дубликат, я не Я не хочу использовать:

source ~/.profile

или

. ~/.profile

, поскольку они влияют только на изменения в одном сеансе терминала. Я хочу внести изменения во все запущенные терминалы из моего пользовательского сеанса. У меня уже есть изменения в текущем сеансе терминала с помощью этих команд . Они мне нужны во вновь открытом терминале после того, как я запустил команду (которую, чтобы уточнить, у меня в настоящее время нет. изменения влияют только на текущий терминал , и мой вопрос состоит в том, чтобы повлиять на эти изменения на нескольких терминалах

0
задан 30 August 2018 в 22:53

1 ответ

Вы не можете. Переменные среды хранятся в памяти каждой оболочки для каждого процесса. Другие процессы (другие оболочки, например, те, которые вы хотите изменить) не могут получить доступ к этой памяти. bash также не слушает сокет для получения обновлений.

Перечитайте man bash, особенно раздел INVOCATION.

~/.profile - это скорее файл запуска ksh. Тем не менее, вы можете поместить source $HOME/.profile в ваш ~/.bashrc.

2
ответ дан 28 October 2019 в 01:36

Другие вопросы по тегам:

Похожие вопросы: