在Mac中正在运行的进程上更改环境变量

时间:2018-11-21 09:16:14

标签: macos environment-variables

我在Mac上有一个正在运行的进程,我想使用一些命令行实用程序从进程外部更改环境变量。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

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