我在Mac上有一个正在运行的进程,我想使用一些命令行实用程序从进程外部更改环境变量。
我该怎么做?
答案 0 :(得分:2)
您不能通过外部实用程序更改正在运行的进程的环境变量。这样做将需要实用程序修改进程的地址空间。请注意,这不是macOS的限制。这是UNIX流程模型的限制。当内核创建UNIX进程时,环境变量将放在其地址空间中。通常在堆栈顶部附近。它们没有存储在该进程的内核数据结构中。因此,没有系统调用来获取或设置这些变量。这意味着,除了通过execve()
或相关的系统调用创建第二个进程外,其他任何方法都无法影响第二个进程的环境。