GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Gibt es eine Möglichkeit, die Umgebungsvariablen eines anderen Prozesses in Unix zu ändern?

Im Wesentlichen, nein. Wenn Sie über ausreichende Berechtigungen (Root oder so ungefähr) verfügten und in /dev/kmem (Kernel-Speicher) herumstocherten und Änderungen an der Umgebung des Prozesses vorgenommen haben und wenn der Prozess danach tatsächlich erneut auf die Umgebungsvariable verwiesen hat (d.h. der Prozess nicht bereits eine Kopie der env-Variablen erstellt hatte und nicht nur diese Kopie verwendete), dann vielleicht, wenn Sie Glück und Geschick hatten und der Wind in die richtige Richtung wehte und die Mondphase richtig war, vielleicht vielleicht erreichst du was.


Sie können es wahrscheinlich technisch tun (siehe andere Antworten), aber es hilft Ihnen möglicherweise nicht.

Die meisten Programme erwarten, dass env-Variablen nach dem Start nicht von außen geändert werden können, daher werden die meisten wahrscheinlich nur die Variablen lesen, an denen sie beim Start interessiert sind, und basierend darauf initialisieren. Eine nachträgliche Änderung macht also keinen Unterschied, da das Programm sie nie wieder einliest.

Wenn Sie dies als konkretes Problem gepostet haben, sollten Sie wahrscheinlich einen anderen Ansatz wählen. Falls es nur aus Neugier war:Gute Frage :-).


Über gdb:

(gdb) attach process_id

(gdb) call putenv ("env_var_name=env_var_value")

(gdb) detach

Dies ist ein ziemlich fieser Hack und sollte natürlich nur im Rahmen eines Debugging-Szenarios durchgeführt werden.


Linux
  1. Was ist der beste distro-/shellunabhängige Weg, um Umgebungsvariablen festzulegen?

  2. Ändern Sie die Schriftart der Textmodus-Konsole?

  3. Weg zum Abrufen des Namens der Desktop-Umgebung??

  4. UNIX / Linux :Wie man die Nettigkeit (Priorität) eines Prozesses ändert

  5. Wie ändere ich die Sprache meines Git?

So ändern Sie die Priorität eines Prozesses in Linux

Ist es möglich, die Umgebung eines übergeordneten Prozesses in Python zu ändern?

Gibt es eine Möglichkeit, den aktuellen rpath unter Linux zu überprüfen?

Verwenden von Umgebungsvariablen im cURL-Befehl - Unix

Welchen Umfang haben exportierte Unix-Shell-Variablen?

Wie lernt man SELinux am besten?