4 votos

¿Dónde debería un demonio iniciado por launchd almacenar sus datos?

Cuando desarrollo una aplicación de UI para OSX, almaceno las preferencias del usuario y la configuración de la aplicación en ~/Library/Preferences/AppName.plist (usando NSUserDefaults).

Pero cuando creo un demonio de fondo global que se ejecutará usando launchd en nombre de root - ¿cuál es el mejor lugar para almacenar la configuración del daemon?

En Linux lo pondría en el directorio /etc/ , pero no estoy seguro de que pueda hacer lo mismo en Mac.

2voto

Steve Evans Puntos 155

Dinámica De Rutas

En macOS, un proceso solicita al sistema operativo donde guardar los tipos específicos de archivos usando el NSWorkspace método URLForDirectory:inDomain:appropriateForURL:crear:error:. Hay un CoreFoundation C función equivalente para este método.

Este enfoque imita los objetivos de la XDG Base de la Especificación de Directorio en otras plataformas.

Típicamente /Library, sin embargo...

Antes de macOS 10.15, equipo de distintos procesos, tales como demonios, utiliza la /Library estructura de carpetas:

  • Para las preferencias: /Library/Preferences/
  • Para los archivos de caché: /Library/Cache/
  • Para apoyo general y archivos de tiempo de ejecución: /Library/Application Support/

A ver ¿Cuál es el propósito de cada carpeta en /de la Biblioteca y /Sistema en Mac OS X? para una buena visión general de las distintas carpetas y su finalidad.

Sin embargo, macOS 10.15 cambios en la estructura del archivo y de los límites de grandes partes del sistema básico de sólo lectura. Envío fijo de las rutas de archivo y asumiendo los caminos para tener acceso de lectura-escritura es arriesgado.

0voto

Oskar Puntos 1242

Para una opción muy segura, escribiría en /usr/local/etc si quisiera guardar / guardar un archivo de configuración para su demonio.

Además, se espera que el demonio simplemente tenga la capacidad de aceptar los argumentos de la línea de comandos cuando se inicie y luego los almacene en la lista de preferencias que invoca al sistema. Luego, vuelva a iniciar el daemon cuando la tarea launchd se vuelva a cargar, le permite cambiar las cosas en el sistema mientras se ejecuta.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X