cambiar el entorno de un process en ejecución

¿Cómo podría ser posible modificar alguna variable en el env de un process ya en ejecución, por ejemplo a través de /proc/PID/environ? Ese "file" es read-only .

Necesita cambiar o desarmar la variable DISPLAY de un trabajo por lotes de larga ejecución sin matarlo.

No se puede hacer esto sin hacks desagradables: no hay API para esto, no hay manera de notificar al process que su entorno ha cambiado (ya que de todos modos no es posible).
Incluso si logra hacer eso, no hay forma de estar seguro de que tendrá algún efecto: el process podría muy bien haber almacenado en caching la variable de entorno que está tratando de insert (ya que no se supone que nada pueda cambiarla) )

Si realmente quieres hacer esto, y estás preparado para recoger las piezas si las cosas van mal, puedes usar un depurador. Ver por ejemplo esta pregunta sobre el desbordamiento de stack:
¿Hay alguna manera de cambiar las variables de entorno de otro process?

Esencialmente:

 (gdb) attach process_id (gdb) call putenv ("DISPLAY=your.new:value") (gdb) detach 

Otras funciones posibles a las que podría intentar llamar son setenv o unsetenv .

Por favor, tenga en count que esto puede no funcionar, o tener consecuencias nefastas si el process al que apunta hace cosas "interesantes" con su bloque de entorno. Primero pruébelo en processs no críticos, pero asegúrese de que estos processs de testing reflejen lo más cerca posible del que está tratando de introducir.