Wie kann man die Umgebung eines laufenden (übergeordneten) Prozesses unter Linux ändern?

Dies ist eigentlich nicht beabsichtigt, und es gibt keine saubere Möglichkeit, dies zu tun.

Es ist jedoch möglich, eine Umgebungsvariable eines bestehenden Prozesses mithilfe eines Debuggers zu ändern.

Konkret geht es hier um den Debugger namens gdb. Dieser kann sich an bestehende Prozesse anhängen und verschiedene Operationen durchführen. Unter anderem auch das Ändern von Umgebungsvariablen.

Um sich mit einem laufenden Prozess zu verbinden, müssen Sie gdb installiert haben und die entsprechende Prozess-ID (PID) kennen. Im folgenden Beispiel ist die ID 2811:

gdb --pid=2811

Der Debugger meldet sich dann mit dem GDB-Prompt:

(gdb) call putenv ("MYVAR=1234")

Im oberen Beispiel finden Sie auch den Befehl, mit dem die Umgebungsvariable des Prozesses gefunden werden kann. In diesem Fall wird die Variable MYVAR auf den Wert 1234 gesetzt.

Bitte beachten Sie, dass der entsprechende Prozess angehalten wird, sobald gdb mit dem Parameter --pid gestartet wird. Sobald die Variable gesetzt ist, kann der Debugger mit den Tasten q und Enter wieder beendet werden – der Prozess läuft dann weiter.

Das Ganze ist aber nur ein schmutziger Hack und sollte nicht in einer produktiven Umgebung eingesetzt werden.

Hinterlasse ein Kommentar