Changing environment variable of a running process

Christian Ammer picture Christian Ammer · Dec 21, 2011 · Viewed 22.5k times · Source

I have a script that exports a environment variable and starts some subscripts.

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

LOGLEVEL is available for the processes startet from the subscripts. How can I change the environment variable LOGLEVEL?

I have tried to set the variable with export LOGLEVEL="5" but that`s not working.

Answer

ibid picture ibid · Dec 21, 2011

In general, you can only influence a process's environment variables at the time the process starts up. If you need to communicate a change to a running process, the environment isn't the right tool.

However, this question has some answers that suggest ways to overcome this limitation.

Edited to add in light of discussion in the question's comments: A fairly good way of communicating occasionally changing setup to a running process is to designate a configuration file where the LOGLEVEL value is set, send a SIGHUP to the process, and have the process reread the configuration file upon receipt of SIGHUP.