В настоящее время я настраиваю Планировщик открытой сетки во FreeBSD. В рамках этого процесса мне нужно установить переменную средыSGE_ROOT
как корень.
Для этого я экспериментировал, пытаясь установить это значение через корневую учетную запись ~/.profile
поскольку эта учетная запись настроена на использование оболочки Bourne в качестве оболочки по умолчанию. Я экспортировал SGE_ROOT
следующим образом: export SGE_ROOT="/usr/local/sge"
Однако после входа в корневую оболочку с помощью SGE_ROOT
настроен в нем ~/.profile
Казалось бы, этот метод установки переменной окружения не работает после запуска команды env
возвращает следующее:
SUDO_COMMAND=/usr/bin/su
LOGNAME=root
MAIL=/var/mail/root
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/home/ec2-user/bin:/usr/local/sge/bin/fbsd-amd64
SUDO_GID=1001
PWD=/usr/home/ec2-user
TERM=xterm
HOME=/root
USER=root
SHELL=/bin/sh
SUDO_USER=ec2-user
SUDO_UID=1001
USERNAME=root
Однако я заметил, что PATH
переменная, которую я также настроил через root ~/.profile
включение двоичных файлов Open Grid Scheduler, похоже, было успешно установлено.
Я также обнаружил, что выполнение той же конфигурации в учетных записях без полномочий root на одном компьютере позволяет установить переменную окружения. Кроме того, экспорт значения в глобальный /etc/profile
похоже, производит такое же поведение.
Поэтому мне интересно, есть ли лучший способ установить эту переменную для учетной записи root в оболочке Bourne?
Я понимаю, что, вероятно, было бы проще использовать tcsh в качестве оболочки по умолчанию root, поскольку FreeBSD обычно настраивается именно так. Однако мне до сих пор пришлось скомпилировать Open Grid Scheduler без поддержки tcsh из-за проблем с utmp.h
больше не доступен во FreeBSD.
Я заметил, что у вас есть переменные среды SUDO, поэтому я предполагаю, что вы запускаете это с помощью sudo. Для проверки я установил оболочку корневого пользователя в / bin / sh и добавил
SGE_ROOT = "/ usr / local / sge"
экспорт SGE_ROOT
в мой /root/.profile
И я не вижу переменную среды, если я просто запускаю «sudo sh», но она у меня есть, если я запускаю «sudo -i» или «sudo su -», так что похоже, что проблема больше связана со способом sudo используется вместо оболочки.