I lately found that launchd
In macOS it gives an preliminary default worth $PATH
to new terminal home windows that isn’t the predetermined route established by macOS in logging, however is produced by launchd
In response to (presumably) its personal inner logic – with out Adjustments have as soon as been made by way of launchctl
or any .plist
file I may discover.
That is the case for those who use the Terminal.app
distributed by Apple, or a 3rd -party terminal as Alacritty.app
.
The predetermined route in macOS in logging, as may be verified with sysctl -n consumer.cs_path
is
/usr/bin:/bin:/usr/sbin:/sbin
However once I positioned echo $PATH
Within the first line of ~/.zshenv
that’s obtained earlier than /and so forth/zprofile
And some other Shell configuration file was seeing a very completely different $PATH
When opening a brand new window in Alacritty:
/usr/native/bin:/choose/homebrew/bin:/usr/bin:/bin:/usr/sbin:/sbin
I verified to return launchd
In search of the exit of launchctl dumpstate
:
pid/72911 = {
sort = pid
originator = /Purposes/Alacritty.app
creator = alacritty(72911)
...
surroundings = {
PATH => /usr/native/bin:/choose/homebrew/bin:/usr/bin:/bin:/usr/sbin:/sbin
...
}
...
}
After restarting Alacritty, with just one window and an occasion of the identical housing echo
Command produced:
/usr/bin:/bin:/usr/sbin:/sbin
What ought to be. However then, opening the predetermined worth Terminal.app
I perceive
/usr/bin:/bin
That, once more, it’s not the default worth of the working system.
This doesn’t essentially have an effect on my means to make use of the shell as a result of I can set up $PATH
in .zshenv
both .zprofile
What he desires, however requires that he annul the $PATH
that launchd
Units if I wish to management the order of search. Actually, what launchd
It’s doing in order that the management of the search order is essential as a result of there may be apparently no assure that the preliminary $PATH
delivered to the shell shall be constant.
Does anybody know why launchd
is offering an inconsistent $PATH
? Is there any rhyme or motive for what decides to incorporate or not within the $PATH
What gives every shell created with every new terminal window and fluctuate by way of the terminal utility?
Once more, I’ve by no means
- issued
launchctl setenv PATH
- issued
sudo launchctl config consumer
bothconfig system
- Modified any
.plist
file wherever (or discovered anybody who establishes thePathEnvironmentVariable
key).
I’m executing Macos Sequoia 15.4 (24E248) in an M2 MacBook Professional, utilizing the Zsh Shell inventory.
He nearer reply I may discover mentions that launchd
manipulates predetermined worth $PATH
However the creator doesn’t specify how or why.