実行中のプロセスの環境の変更

実行中のプロセスの環境の変更

envたとえば、すでに実行されているプロセスで特定の変数を変更する方法 対応する/proc/PID/environ?"ファイル"はread-only

長期実行バッチジョブを終了せずにDISPLAY変数を変更または設定解除する必要があります。

ベストアンサー1

不愉快なハッキングがなければ、これはできません。これを行うAPIもなく、環境が変更されたことをプロセスに知らせる方法もありません(どうせ実際には不可能だからです)。
これを行っても効果があるという保証はありません。プロセスは、突き刺す環境変数をすでにキャッシュする可能性が高いです(何も変更できないため)。

本当にこれを実行したい場合、問題が発生したときに問題を解決する準備ができている場合は、デバッガを使用できます。たとえば、次のスタックオーバーフローに関する質問をご覧ください。
他のプロセスの環境変数を変更する方法はありますか?

基本的に:

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

呼び出すことができる他の可能な関数はまたはsetenvですunsetenv

ターゲットプロセスが環境ブロックに対して「興味深い」操作を実行している場合は、これが機能しないか、重大な結果をもたらす可能性があることを覚えておくことが重要です。重要ではないプロセスを最初にテストしますが、これらのテストプロセスがテストするプロセスにできるだけ近いようにしてください。

おすすめ記事