У меня есть сценарий в /etc/init.d/
названный foo.sh
это работает шесть (JAVA) банки Начальной загрузки Spring. Все банки требуют, чтобы переменные окружения работали. Этот сценарий был добавлен к rc.d
через update-rc.d foo.sh defaults
. Необходимые переменные окружения были добавлены к /etc/environment/
.
Каждый раз, когда я перезагружаю сервер, выполнения сценария, но один из модулей Java не может найти огибающие переменные, другие 5 выполненный правильно. Если я пытаюсь запустить скрипт вручную, он не имеет никаких проблем вообще. Я имею, выполнил это миллион путей, чтобы определить, находится ли проблема в коде Java, но это не.
Что точно происходит здесь и как я мог решить его так, чтобы на перезагрузке все банки могли получить доступ к глобальным переменным окружения?
Я не могу сказать Вам точно, почему это происходит, но я могу предложить пару вещей.
Можно всегда создавать простой сценарий тестирования в том каталоге и вызывать его тот же путь как другие банки, который просто отображает среду:
#!/bin/sh
echo "$(env)" >/tmp/env-test
Во-вторых, можно всегда предварительно ожидать любые переменные среды, как которые Вы хотите доступный команде:
FOO=bar mycommand
Это часто полезно для того, чтобы временно выполнить команду с помощью переменной, не имея необходимость устанавливать его.