/ / Jak ustawić globalne zmienne środowiskowe za pomocą skryptu powłoki .sh - python, shell, ubuntu, zmienne środowiskowe

Jak ustawić globalne zmienne środowiskowe za pomocą skryptu powłoki .sh - python, shell, ubuntu, environment-variables

mam .sh plik, który lokalnie ustawia niektóre zmienne środowiskowe w mojej powłoce source my_env.sh.

#!/bin/sh
echo "Setting up local environment variables"
export MY_URL="http://domain.com"
echo "Done"

To ustawia tylko zmienne dla tej sesji. Co oznacza, że ​​moje aplikacje Python Celery i Supervisor, które działają w innej sesji, nie mają do nich dostępu. Rozumiem, że mogę je uruchomić pod kontrolą użytkownika, ale chcę wiedzieć, czy na Ubuntu używa się tego samego skryptu powłoki, jeśli mogę ustawić zmienne, aby były dostępne globalnie dla wszystkich aplikacji niezależnie od użytkowników i sesji?

Odpowiedzi:

1 dla odpowiedzi № 1

Według Zmienne env Ubuntu doc najlepszym sposobem byłoby

Odpowiednim plikiem dla ustawień zmiennych środowiskowych, które wpływają na system jako całość (a nie tylko konkretnego użytkownika) jest / etc / environment

Zakładając, że nie masz nic przeciwko ustawieniu ich dla całej maszyny.


2 dla odpowiedzi nr 2

wyeksportuj swoje zmienne w „/ etc / profile”.

UWAGA: To sprawi, że będzie globalny dla każdej sesji powłoki dla dowolnego użytkownika. Jeśli chcesz ustawić tę zmienną dla każdej sesji dla a określony użytkownik, ustaw go w tym „s” ~ / .profile użytkownika.


0 dla odpowiedzi № 3

Jeśli używasz bashrc lub zshrc, możesz pobrać plik powłoki, który ustawia zmienne środowiskowe w sesjach lub precyzyjnie ładuje wszystkie zmienne środowiskowe w każdej sesji.

source location/shell-script-sets-env.sh

Zshrc i bashrc są dostępne w katalogu $ HOME. lub ~ / .zshrc i ~ / .bashrc. Aktualna powłoka może być przeglądana przez

echo $SHELL

Spójrz na stałe ustawienie env za dodanie go do profilu.