Hay diferentes soluciones con respecto a la definición de las variables de entorno que se almacenan en el proceso launchd
, a saber, en StackOverflow y Superuser . ¿En qué se diferencian estas soluciones?
Hay diferentes soluciones con respecto a la definición de las variables de entorno que se almacenan en el proceso launchd
, a saber, en StackOverflow y Superuser . ¿En qué se diferencian estas soluciones?
Para mayor claridad, me referiré a esta solución como la solución estática , < a href="https://stackoverflow.com/a/3756686"> la segunda solución como la solución dinámica , y, finalmente, éste como la solución de agente de lanzamiento . Voy a comparar la solución estática y dinámica con el agente de lanzamiento, respectivamente.
La solución estática implica la edición de /etc/launchd.conf
. Esto tiene la ventaja, al igual que con la solución de agente de lanzamiento, de que las variables se configuran en el inicio de sesión. Las desventajas son que
/etc/launchd.conf
no permite cosas como la sustitución de variables y esas cosas (al menos eso creo, tal vez sea factible), /etc/launchd.conf
para retirar la solución estática, con la otra puede colocar todos los archivos en lugares accesibles, por ejemplo. el agente de lanzamiento en ~/Library/LaunchAgents/
, La solución dinámica es similar a la solución del agente de lanzamiento. Su desventaja es que las variables no están disponibles inmediatamente después de iniciar sesión, primero debe (re) definirlas. Para combinar la solución dinámica con la otra, imagine que desea establecer la variable FOO
en el contenido de la variable BAR
. Deberías encender una concha, decir bash y escribir
launchctl setenv FOO "$BAR"
echo 'setenv FOO $BAR' >> ~/.conf.launchd
Entonces FOO
estaría disponible en todas las aplicaciones iniciadas después de esta definición, y también se definiría justo después del siguiente inicio de sesión.
Lea otras preguntas en las etiquetas launchd environment-variables