For a while now, I've been noticing that my MacPorts-installed Apache2 instance hasn't been starting when I start up (MacPorts Apache2 Stopped Launching on Boot). The LaunchDaemon is loaded. Today I bumped into something in a log file that may point to an answer, but I can't find any confirmation.
I use environment variables in my httpd.conf
file. Specifically, the ${HOME}
variable. Is it possible (or probable, etc.) that environmental variables are fully loaded when LaunchDaemons are executed? I can add them to the plist
file, but I'm hoping someone can provide me with a decent, high level look into the boot process of OS X and confirm what I think I'm seeing.
Thanks.
I found this page about the Boot Process on MacOSX, which contains some information. Basically,
launchd
is started and run as root. Every daemons is then started bylaunchd
based on theplist
file.Regarding the environment during daemon start, I have not find a single bit of explicit information. But after reading the launchctl man, I found a command that can print out the environment of
launchd
. So the trick is to goroot
and ask:I infer that the print environment is the one used when daemons are started. If you repeat the operation without going
root
, the environment must match the user's one.