在Unix上,有没有办法让一个进程可以改变另一个进程的环境变量(假设它们都是由同一个用户运行)?一般的解决方案是最好的,但如果没有,那么一个人是另一个人的孩子的具体情况怎么样?
编辑:通过gdb怎么样?
考虑以下 Ruby 代码
sleep 10
puts "Foo is #{ENV['foo']}"
Run Code Online (Sandbox Code Playgroud)
将此文件保存到 envtest.rb
从 shell 运行:
export foo=bar
ruby envtest.rb &
export foo=baz
( ... 10 seconds later ... )
=> Foo is bar
Run Code Online (Sandbox Code Playgroud)
似乎在启动 ruby 解释器时评估环境。是否可以在执行期间更新环境变量并将这些更改反映在正在运行的进程中?如果是这样,如何?