Reply Part 3/3. (I had to split my reply over 3 posts due to requirement that new users are limited to 2 links in a post.)
See also the “Secure-execution mode section” of the man page of
In summary, Fedora 31 changed
/usr/bin/gnome-shell to run with capabilities, which causes it to run in a “secure-execution mode,” which, in turn, strips certain environment variables from the environment.
Then all the child processes of gnome-shell inherit its modified environment.
My understanding breaks down at this point, because I can’t explain how gnome-terminal is a child process of gnome-shell. I tried looking at the output of:
ps -aef --forest
but it doesn’t make that relationship evident. I suspect it has to do with
Note that, when you look at the output of
ps -aef --forest, it is this line that starts bash as a login shell:
/usr/bin/ssh-agent /bin/sh -c exec -l /bin/bash -c "/usr/bin/gnome-session"
Note that if you open a
guake terminal, you’ll get the behavior you expected; the
LD_LIBRARY_PATH environment variable will be set as you specified in your
~/.bash_profile. This is consistent with the output of
ps -aef --forest which shows that
guake is started before
Note also that GNOME 3.34 had a significant change to the relationship between systemd and gnome-session:
GNOME 3.34 is now managed using systemd
That might explain why there’s a difference between Fedora 30 and Fedora 31.