Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Changing environment variable of a running process

Tags:

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.

like image 308
Christian Ammer Avatar asked Dec 21 '11 11:12

Christian Ammer


People also ask

Can environment variables change during execution?

No. This is not possible. One process can never directly manipulate the environment of a different already-running process.


Video Answer


1 Answers

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.

like image 118
ibid Avatar answered Sep 23 '22 07:09

ibid