有沒有辦法在Unix中更改另一個進程的環(huán)境變量?在Unix上,有沒有辦法讓一個進程可以改變另一個進程的環(huán)境變量(假設(shè)它們都是由同一個用戶運行)?一般的解決方案是最好的,但如果沒有,那么一個人是另一個人的孩子的具體情況怎么樣?編輯:通過gdb怎么樣?
3 回答

小怪獸愛吃肉
TA貢獻1852條經(jīng)驗 獲得超1個贊
通過gdb:
(gdb) attach process_id(gdb) call putenv ("env_var_name=env_var_value")(gdb) detach
這是一個非常討厭的黑客攻擊,當然應(yīng)該只在調(diào)試場景的環(huán)境中完成。

慕的地10843
TA貢獻1785條經(jīng)驗 獲得超8個贊
你可能在技術(shù)上可以做到(見其他答案),但它可能對你沒有幫助。
大多數(shù)程序都會期望在啟動后無法從外部更改env變量,因此大多數(shù)人可能只是在啟動時讀取他們感興趣的變量并基于此進行初始化。因此,之后更改它們不會產(chǎn)生任何影響,因為程序永遠不會重新讀取它們。
如果您將此作為一個具體問題發(fā)布,您應(yīng)該采取不同的方法。如果只是出于好奇:好問題:-)。

湖上湖
TA貢獻2003條經(jīng)驗 獲得超2個贊
基本上沒有。如果你有足夠的權(quán)限(root或其左右)并且在/ dev / kmem(內(nèi)核內(nèi)存)周圍進行了調(diào)整,并且你對進程的環(huán)境進行了更改,并且之后進程實際上重新引用了環(huán)境變量(即進程)還沒有拿過env var的副本并且沒有使用那個副本),那么也許,如果你是幸運和聰明的,風向正確的方向吹,月亮的相位是正確的,也許,你可能會有所成就。
添加回答
舉報
0/150
提交
取消