Создать глобальную переменную окружения после загрузки

Создать глобальную переменную окружения после загрузки

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

По сути, в любой момент, скажем, через 10 минут после загрузки, я хотел бы иметь возможность запустить скрипт, который установит некоторые глобальные переменные среды. Возможно ли это?

Фон

У меня возникли некоторые проблемы с gpg-agent в Ubuntu 14.04. Программы используют переменные окружения для подключения к процессу gpg-agent. Моя проблема заключается в нескольких запущенных экземплярах gpg-agent (только в одном из которых включена поддержка ssh). Я хотел бы иметь возможность завершить все существующие экземпляры gpg-agent и запустить новый с поддержкой ssh. Однако, чтобы другие программы могли получить доступ к новому экземпляру, мне нужно, чтобы переменные окружения были глобальными. Выполнение этого во время запуска не сработало для меня, поскольку другой gpg-agent, похоже, запускается после моего, заменяя переменные окружения.

решение1

Иногда я сталкиваюсь с близкой проблемой. У меня есть ssh-agentзапущенный на машине под эгидой графического рабочего стола, но я получаю доступ к той же машине удаленно. У этой оболочки нет переменных окружения.

Для этого я использую скрипт, который просматривает /procпроцессы Bash и просматривает их /proc/<pid>/environзаписи, ища SSH_AGENT_PIDи SSH_AGENT_SOCKпеременные. Затем он воссоздает эти записи в синтаксисе оболочки, так что весь этот "скрипт прочесывания env" может быть eval-ed в новой оболочке.

По сути, «пройдите /procи найдите, что другие Bash-ы используют для своих переменных агента, и воспроизведите это в этом сеансе».

Связанный контент