Establecer variables de entorno en el proceso de escritorio después de iniciar sesión

Establecer variables de entorno en el proceso de escritorio después de iniciar sesión

Puedo configurar variables de entorno para que las hereden todos los procesos en ~/.profile. Esto funciona porque el entorno de escritorio (por ejemplo, gnome-shell) ejecuta este archivo al iniciar sesión. gnome-shell luego actualiza sus propias variables de entorno. Debido a que cada proceso (firefox, xterm, emacs) tiene gnome-shell como antepasado, heredan estas variables de entorno.

¿Hay alguna manera de actualizar las variables de entorno en este proceso (gnome-shell) después de iniciar sesión? Me imagino algo como

$ xdg-set FOO=BAR

luego en una nueva terminal podrás ver inmediatamente

$ echo $FOO
BAR

Respuesta1

El entorno se pasa a un nuevo proceso de manera similar a como lo hacen los argumentos de la línea de comando: se copian en el espacio de direcciones del nuevo proceso. No se pasan "por referencia", por lo que un cambio en el entorno de algún proceso ancestro no se refleja en los procesos descendientes.

Esto significa que sólo se puede cambiar el entorno de un proceso manipulando el proceso mismo, y sólo si el proceso ofrece un medio para hacerlo, por ejemplo estableciendo una variable en un shell. Este cambio en el entorno generalmente se refleja en cualquier proceso hijo que el proceso pueda generar.

información relacionada