Come imposto una variabile d'ambiente all'avvio (tramite uno script)?

4

Mi piacerebbe impostare un paio di variabili d'ambiente (al momento dell'avvio) su una macchina Ubuntu (10.04), ma voglio creare il loro valore tramite uno script, in modo simile a:

export THE_ENV_VAR=$(script_to_execute_and_use_stdout_from)
  • La ragione per cui voglio farlo è che i comandi usati per impostare le variabili d'ambiente richiedono molto tempo per l'esecuzione (10 secondi o giù di lì), ecco perché voglio farlo solo una volta dopo l'avvio. Ad ogni modo, attualmente ho risolto questo problema memorizzando nella cache il risultato del comando al momento dell'avvio, in modo che le chiamate successive andassero veloci, quindi non utilizzando env. variabili a tutti.

Ho provato a impostare in /etc/environment , ma questo copia solo rhs verbatim

Ho provato a eseguire uno script in /etc/init.d/ all'avvio, ma non sembra funzionare.

idee?

    
posta Robert 12.10.2011 - 22:52

4 risposte

3

Metti questo in ~/.bash_profile o ~/.bashrc

gedit ~/.bashrc

Usa .bash_profile se hai bisogno di usare quelle variabili con shell non interattive (script) e ~ / .bashrc se stai impostando le tue variabili in una shell.

Se ciò non funziona, abbiamo bisogno di maggiori dettagli, in particolare quali variabili stai impostando e per quale scopo?

    
risposta data Panther 25.02.2012 - 02:45
0

Per impostare le variabili ambientali a livello di sistema che sono disponibili all'avvio, inseriscile in /etc/environment . Questo file non è un file di script, ma piuttosto è costituito da espressioni di assegnazione, una per riga. In questo modo:

SYSTEM_FOO=barnone

Nota : l'espansione delle variabili non funziona in / etc / environment.

Informazioni originali da help.ubuntu.com

    
risposta data frederickjh 14.11.2017 - 23:20
0

Sebbene ciò non sia una buona pratica, è possibile specificare le variabili di ambiente come parametri del kernel. La documentazione del kernel Linux ha alcune buone informazioni intorno (importante paragrafo in grassetto):

  

La lista degli argomenti

     

La riga di comando del kernel viene analizzata in un elenco di   stringhe (argomenti di avvio) separate da spazi. La maggior parte dello stivale   gli argomenti hanno la forma:

 name[=value_1][,value_2]...[,value_10]
     

dove "nome" è una parola chiave univoca che viene utilizzata per identificare quale parte   del kernel i valori associati (se presenti) devono essere dati a. Nota   il limite di 10 è reale, poiché il codice attuale gestisce solo 10 virgola   parametri separati per parola chiave. (Tuttavia, puoi riutilizzare lo stesso   parola chiave con un massimo di 10 parametri aggiuntivi in ​​situazioni insolitamente complicate, & gt; supponendo che la funzione di installazione lo supporti).

     

La maggior parte dell'ordinamento è codificata nel file sorgente del kernel init / main.c.   Per prima cosa, il kernel controlla se l'argomento è qualcosa di speciale   argomenti 'root =', 'nfsroot =', 'nfsaddrs =', 'ro', 'rw', 'debug' o   'dentro'. Il significato di questi argomenti speciali è descritto di seguito.

     

Quindi visualizza un elenco di funzioni di installazione per vedere se la stringa argomento specificata   (come "pippo") è stato associato a una funzione di configurazione   ('foo_setup ()') per un particolare dispositivo o parte del kernel. Se   hai passato il kernel alla riga foo = 3,4,5,6 poi il kernel lo farebbe   cerca nell'array bootsetups per vedere se 'foo' è stato registrato. Se è così   era, quindi chiamava la funzione di installazione associata a "foo"   (foo_setup ()) e consegnategli gli argomenti 3, 4, 5 e 6 come indicati su   la riga di comando del kernel.

     

Tutto il modulo 'foo = bar' che non è accettato come funzione di configurazione come   sopra descritto viene quindi interpretato come una variabile d'ambiente da impostare.
  Un esempio (inutile?) Sarebbe usare 'TERM = vt100' come   un argomento di avvio.

     

Eventuali argomenti rimanenti che non sono stati rilevati dal kernel e   non sono stati interpretati come vengono passate le variabili di ambiente   PID 1, che di solito è il programma init (1). L'argomento più comune   quello che viene passato al processo di init è la parola 'single' che   lo istruisce per avviare il computer in modalità utente singolo e non per avviarlo   tutti i soliti demoni. Controlla la pagina del manuale per la versione di   init (1) installato sul tuo sistema per vedere quali argomenti accetta.

Questa risposta AskUbuntu ha alcune buone istruzioni su come modificare i parametri di avvio del kernel.

    
risposta data wheeler 10.08.2018 - 20:37
-1

Metti i tuoi comandi in /etc/rc.local . Assicurati di leggere i commenti in testa.

    
risposta data aquaherd 13.10.2011 - 01:33

Leggi altre domande sui tag