Ändern der Umgebungsvariablen des Linux-Desktops ohne erneute Anmeldung

666
sundar

Ich setze eine bestimmte Umgebungsvariable in meiner ein .bashrc, und sobald ich sie beschafft habe, ist sie sowohl in der Shell selbst als auch in gVim-Instanzen verfügbar, die ich von der Shell aus beginne. Wenn ich jedoch eine gVim-Instanz über das System-GUI-Menü starte, sieht diese Instanz diese Variable nicht.

Gemäß dieser Antwort erbt gVim die Variablen der Desktop-Umgebung. Gibt es in diesem Fall eine Möglichkeit, Werte in dieser Umgebung dynamisch zu ändern oder neue Umgebungsvariablen hinzuzufügen? Ich verstehe, dass das Setzen der Variablen in .profileder Desktop-Umgebung verfügbar ist, wenn sie neu gestartet wird. Aber gibt es eine Möglichkeit, die Änderung ohne einen Neustart oder ein Relogin durchzuführen?

0

1 Antwort auf die Frage

1
grawity

Jeder Prozess erbt eine Kopie der Umgebungsvariablen. Also, im Allgemeinen nein - Sie sollten die gesamte Desktopsitzung von vorne beginnen.

Es reicht möglicherweise aus, nur das "Systemmenü" neu zu starten, falls es sich um ein separates Programm handelt. In Xfce4 könnten Sie es beenden xfce4-panelund erneut von der "festen" Shell starten, und die aktualisierte Umgebung wird von Ihrer Shell übernommen .

Beachten Sie, dass die meisten Umgebungsvariablen ~/.profilestattdessen festgelegt werden sollten, da nicht alle Desktopsitzungen über bash gestartet werden und selbst dann selten zum Lesen aufgefordert werden ~/.bashrc.


Als Ausnahme haben einige Programme Funktionen ihrer Umgebung von außen zu aktualisieren, da sie einen Neustart zu viele Dinge beeinflussen würde - wie tmux, dbus-daemonoder systemd --user. Aber auch sie können die neue Umgebung nicht in bereits laufende Dienste treiben.