¿Cuál es el directorio de trabajo predeterminado de un script ejecutado a través de launchd?

4

Esperaba que fuera fácil de encontrar en Google, pero no pude descubrir nada.

Sé que el directorio de trabajo de un agente / demonio launchd se puede cambiar a través de la clave workingdirectory . Sin embargo, esta clave es opcional. Si no se especifica ningún directorio de trabajo, ¿qué utiliza macOS?

    
pregunta Wowfunhappy 25.05.2017 - 02:42

1 respuesta

7

El WorkingDirectory <string> en un launchd.plist es una clave opcional que se usa para especificar un directorio a chdir (2) antes de ejecutar el trabajo. Si esta clave no está presente, se usa el directorio root / .

Lo verifiqué ejecutando un shell script como un agente de lanzamiento y un daemon de lanzamiento que, cuando se ejecuta, adjunta una lista de directorios a un archivo de texto. En todos los casos, sin la clave WorkingDirectory <string> , la salida fue el directorio root / del disco de inicio .

Dependiendo de si se ejecutó o no como root o user actual , la salida como root también contenía los directorios ocultos, aunque no se estableció explícitamente en el script para la salida.

Como nota al margen, el PATH pasado al script de shell cuando se ejecutó como Agente de lanzamiento y Daemon de lanzamiento fue:

/usr/bin:/bin:/usr/sbin:/sbin

Tenga en cuenta que esto se probó en OS X 10.8.5.

    
respondido por el user3439894 25.05.2017 - 03:22

Lea otras preguntas en las etiquetas