2011-12-21 6 views
5

Tengo un script que exporta una variable de entorno e inicia algunos subíndices.Modificación de la variable de entorno de un proceso en ejecución

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

LOGLEVEL se encuentra disponible para los procesos startet de los subíndices. ¿Cómo puedo cambiar la variable de entorno LOGLEVEL?

He intentado establecer la variable con export LOGLEVEL="5" pero eso no funciona.

+0

posible duplicado de [¿Hay una manera de cambiar las variables de entorno de otro proceso?] (Http://stackoverflow.com/questions/205064/ is-there-a-way-to-change-another-processs-environment-variables) – thiton

+0

Donde quiere que se cambie el LOGLEVEL y para qué proceso - como usted dice que ha cambiado para los dos procesos de myscript. – Mark

+0

@Mark: no importa si LOGLEVEL se cambia para los procesos de ambos subíndices, o si puedo cambiarlo para procesos individuales. Básicamente, estoy buscando cualquier forma de hablar con un proceso, que debería imprimir más información en su archivo de registro. –

Respuesta

11

En general, solo puede influir en las variables de entorno de un proceso en el momento en que se inicia el proceso. Si necesita comunicar un cambio a un proceso en ejecución, el entorno no es la herramienta adecuada.

Sin embargo, this question tiene algunas respuestas que sugieren formas de superar esta limitación.

Editado para agregar algo a la discusión en los comentarios de la pregunta: una manera bastante buena de comunicar ocasionalmente cambiar la configuración a un proceso en ejecución es designar un archivo de configuración donde se establece el valor LOGLEVEL, enviar un SIGHUP al proceso y haga que el proceso vuelva a leer el archivo de configuración al recibir SIGHUP.

+1

Gracias por el enlace y la pista de cómo administrar esto de la manera correcta. He leído más sobre SIGHUP y lo he encontrado en la Wikipedia: _ Los programas de Daemon a veces usan SIGHUP como una señal para reiniciarse, la razón más común para esto es -read un archivo de configuración que ha sido cambiado_ –

-2

En Linux:

strings –a /proc/<pid_of_the_process>/environ 

o

ps eww <pid_of_the_process> 
+6

que imprime, la pregunta fue modificar. No ayuda. – rektide

Cuestiones relacionadas