Как установить переменные среды для системных пользователей в Ubuntu? - PullRequest
0 голосов
/ 15 июля 2011

Я создал системного пользователя для моей установки glassfishv3, в которой нет интерактивной оболочки, поэтому для этого пользователя не заданы переменные среды, когда glassfish запускается через asadmin.

Я пытался скопировать в среде:используя следующие команды в моем скрипте инициализации:

jhv=$(grep JAVA_HOME /etc/environment)
$jhv
export JAVA_HOME    
sudo -u glassfish -E $glassfishpath/asadmin start-domain domain1

Внутри asadmin я повторяю $ JAVA_HOME, который правильно печатает JAVA_HOME.

После запуска glassfish я запускаю веб-сервис одним методомкоторый печатает пары значений ключа среды.JAVA_HOME нет среди них.Это вызывает проблему с любым скриптом, выполняемым glassfish, для которого требуется JAVA_HOME.

Итак, как мне установить JAVA_HOME в среде системного пользователя / glassfish, чтобы она сохранялась после запуска контейнера java?

1 Ответ

0 голосов
/ 15 июля 2011

Обычно решение заключается в добавлении флага -E к команде sudo.Этот флаг говорит sudo поддерживать переменные окружения текущего пользователя при переходе к корневому доступу.

Похоже, вы уже используете этот флаг, хотя я не знаю, в чем проблема.Может случиться так, что в вашем скрипте не будет установлен флажок, и вы не будете уведомлены.Вы пытались запустить командное руководство сценария в оболочке?Каков результат / вывод?

...