GNU/Linux >> Belajar Linux >  >> Linux

Apakah ada cara untuk mengubah variabel lingkungan dari proses lain di Unix?

Secara substansial, tidak. Jika Anda memiliki hak istimewa yang memadai (root, atau sekitar itu) dan melihat-lihat /dev/kmem (memori kernel), dan Anda membuat perubahan pada lingkungan proses, dan jika proses benar-benar merujuk ulang variabel lingkungan sesudahnya (yaitu, proses belum mengambil salinan env var dan tidak hanya menggunakan salinan itu), maka mungkin, jika Anda beruntung dan pintar, dan angin bertiup ke arah yang benar, dan fase bulan benar, mungkin, Anda mungkin mencapai sesuatu.


Anda mungkin dapat melakukannya secara teknis (lihat jawaban lain), tetapi mungkin tidak membantu Anda.

Sebagian besar program akan berharap bahwa env vars tidak dapat diubah dari luar setelah startup, oleh karena itu sebagian besar mungkin hanya membaca vars yang mereka minati saat startup dan menginisialisasi berdasarkan itu. Jadi mengubahnya setelah itu tidak akan membuat perbedaan, karena program tidak akan pernah membacanya kembali.

Jika Anda memposting ini sebagai masalah nyata, Anda mungkin harus mengambil pendekatan yang berbeda. Jika hanya ingin tahu:Pertanyaan bagus :-).


Melalui gdb:

(gdb) attach process_id

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

(gdb) detach

Ini adalah peretasan yang cukup jahat dan hanya boleh dilakukan dalam konteks skenario debug, tentu saja.


Linux
  1. Perbedaan Penggunaan Antara Variabel Shell Dan Variabel Lingkungan?

  2. Ubah Lingkungan Proses yang Berjalan?

  3. Cara Portabel (posix) Untuk Mencapai Substitusi Proses?

  1. UNIX / Linux :Bagaimana mengubah kebaikan (prioritas) suatu proses

  2. Bagaimana cara mengubah bahasa git saya?

  3. Apakah ada cara untuk mendapatkan toples server terbaru melalui URL yang tidak berubah?

  1. Apa Cara Distro/shell-agnostik Terbaik Untuk Mengatur Variabel Lingkungan?

  2. Ubah Font Konsol mode Teks?

  3. Cara membaca variabel lingkungan dari suatu proses