GNU/Linux >> Tutoriales Linux >  >> Linux

¿Hay alguna forma de cambiar las variables de entorno de otro proceso en Unix?

Sustancialmente, no. Si tenía suficientes privilegios (root, o más o menos) y hurgaba en /dev/kmem (memoria del kernel), e hizo cambios en el entorno del proceso, y si el proceso realmente volvió a hacer referencia a la variable de entorno después (es decir, el proceso no había tomado ya una copia de la env var y no estaba usando solo esa copia), entonces tal vez, si tuvo suerte y fue inteligente, y el viento soplaba en la dirección correcta, y la fase de la luna era correcta, tal vez, podrías lograr algo.


Probablemente puedas hacerlo técnicamente (ver otras respuestas), pero puede que no te ayude.

La mayoría de los programas esperarán que los vars env no se puedan cambiar desde el exterior después del inicio, por lo tanto, la mayoría probablemente solo leerá los vars que les interesan al inicio y se inicializarán en función de eso. Por lo tanto, cambiarlos después no supondrá una diferencia, ya que el programa nunca los volverá a leer.

Si publicó esto como un problema concreto, probablemente debería adoptar un enfoque diferente. Si solo fue por curiosidad:Buena pregunta :-).


Vía gdb:

(gdb) attach process_id

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

(gdb) detach

Este es un truco bastante desagradable y, por supuesto, solo debe realizarse en el contexto de un escenario de depuración.


Linux
  1. ¿Cambiar la fuente de la consola de modo de texto?

  2. ¿Cambiar el entorno de un proceso en ejecución?

  3. UNIX / Linux:Cómo cambiar la amabilidad (prioridad) de un proceso

  4. Uso de variables de entorno en el comando cURL - Unix

  5. ¿Hay alguna manera de obtener el archivo jar del servidor más reciente a través de una URL que no cambia?

Cómo cambiar la prioridad de un proceso en Linux

¿Cómo cambiar el idioma de mi git?

¿Hay alguna manera de cambiar una identificación de volumen de archivos .iso desde la línea de comando?

¿Cuál es la mejor manera de aprender SELinux?

¿Hay alguna manera de escuchar el proceso?

¿Variables de entorno de un proceso en ejecución en Unix?