Переменные в масштабе всей системы, не доступные System V init сценарии

У меня есть сценарий в /etc/init.d/ названный foo.sh это работает шесть (JAVA) банки Начальной загрузки Spring. Все банки требуют, чтобы переменные окружения работали. Этот сценарий был добавлен к rc.d через update-rc.d foo.sh defaults. Необходимые переменные окружения были добавлены к /etc/environment/.

Каждый раз, когда я перезагружаю сервер, выполнения сценария, но один из модулей Java не может найти огибающие переменные, другие 5 выполненный правильно. Если я пытаюсь запустить скрипт вручную, он не имеет никаких проблем вообще. Я имею, выполнил это миллион путей, чтобы определить, находится ли проблема в коде Java, но это не.

Что точно происходит здесь и как я мог решить его так, чтобы на перезагрузке все банки могли получить доступ к глобальным переменным окружения?

0
задан 6 February 2020 в 00:13

1 ответ

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

Можно всегда создавать простой сценарий тестирования в том каталоге и вызывать его тот же путь как другие банки, который просто отображает среду:

#!/bin/sh
echo "$(env)" >/tmp/env-test

Во-вторых, можно всегда предварительно ожидать любые переменные среды, как которые Вы хотите доступный команде:

FOO=bar mycommand

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

0
ответ дан 20 February 2020 в 23:00

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

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