Вы не можете изменять переменные окружения запущенного процесса с помощью внешней утилиты.Для этого потребуется, чтобы утилита изменила адресное пространство процесса.Обратите внимание, что это не ограничение macOS.Это ограничение модели процесса UNIX.Когда ядро создает процесс UNIX, переменные среды помещаются в его адресное пространство;как правило, около вершины стека.Они не хранятся в структурах данных ядра для процесса.И поэтому нет системных вызовов для получения или установки этих переменных.Это означает, что ни один процесс не может повлиять на переменные второго процесса, кроме как в тот момент, когда второй процесс создается с помощью execve()
или связанного системного вызова.