2011-12-21 6 views
5

Ho uno script che esporta una variabile di ambiente e avvia alcuni indici.Modifica della variabile di ambiente di un processo in esecuzione

export LOGLEVEL="1" 
/home/myuser/bin/myscript1.sh 
/home/myuser/bin/myscript2.sh 

LOGLEVEL è disponibile per processi lancia dagli indici. Come posso modificare la variabile di ambiente LOGLEVEL?

Ho provato a impostare la variabile con export LOGLEVEL="5" ma non funziona.

+0

possibile duplicato del [C'è un modo per cambiare le variabili di ambiente di un altro processo?] (Http://stackoverflow.com/questions/205064/ è-there-a-way-to-change-another-processs-environment-variables) – thiton

+0

Dove vuoi che il LOGLEVEL sia cambiato e per quale processo, come dichiari che è cambiato per i due processi di myscript. – Mark

+0

@Mark: Non importa se LOGLEVEL viene modificato per i processi di entrambi gli indici o se posso modificarlo per i singoli processi. Essenzialmente sto cercando qualsiasi modo di lavorare parlando con un processo, che dovrebbe stampare più informazioni nel suo file di log. –

risposta

11

In generale, è possibile influenzare solo le variabili di ambiente di un processo al momento dell'avvio del processo. Se è necessario comunicare una modifica a un processo in esecuzione, l'ambiente non è lo strumento giusto.

Tuttavia, this question ha alcune risposte che suggeriscono modi per superare questa limitazione.

Modificato per aggiungere alla luce della discussione nei commenti della domanda: Un modo abbastanza buono di comunicare occasionalmente la modifica della configurazione in un processo in esecuzione è designare un file di configurazione in cui è impostato il valore LOGLEVEL, inviare un SIGHUP al processo e fare in modo che il processo rilegga il file di configurazione al ricevimento di SIGHUP.

+1

Grazie per il link e l'indizio su come gestirlo nel modo giusto - Ho letto di più su SIGHUP e trovato su Wikipedia: _I programmi Demone a volte usano SIGHUP come segnale per riavviarsi, il motivo più comune per questo -read un file di configurazione che è stato modificato_ –

-2

In Linux:

strings –a /proc/<pid_of_the_process>/environ 

o

ps eww <pid_of_the_process> 
+6

Che stampa, la domanda è stata modificata. Nessun aiuto. – rektide