How to change the environment of a running (parent) process under Linux?
This is not actually intended and there is no clean way to do it.
However, it is possible to change an environment variable of an existing process using a debugger.
Specifically, this is about the debugger called gdb. This can attach itself to existing processes and carry out various operations. Among other things, changing environment variables.
To connect to a running process you must have gdb installed and know the respective process ID (PID). In the example below, the ID is 2811:
gdb --pid=2811
The debugger then reports with the GDB prompt:
(gdb) call putenv ("MYVAR=1234")
In the upper sample you can also find the command with which the environment
variable of the process can be found. In this case, the variable MYVAR
is set
to the value 1234
.
Please note that the respective process is stopped as soon as gdb is started
with the parameter --pid
. As soon as the variable has been set, the debugger
can be ended again with the q
and Enter keys - the process then runs again.
But the whole thing is just a dirty hack and should not be used in a productive environment.