Una forma sería hacer que el núcleo Erlang de la aplicación sea un daemon con el que la interfaz de Cocoa se comunica con un socket de dominio Unix utilizando algún protocolo simple que usted idee.
El uso de un socket de dominio Unix significa que el daemon de Erlang podría iniciarse bajo demanda en launchd
y el front-end de Cocoa podría encontrar la ruta de acceso al socket a través de una variable de entorno. Eso hace que la cita entre la aplicación y el daemon sea trivial, y también facilita el desarrollo de múltiples front-ends (o posiblemente un framework que envuelve la comunicación con el daemon).
El sistema Mac OS X launchd
es realmente genial de esta manera. Si especifica que un trabajo debe iniciarse bajo demanda a través de un socket seguro de dominio Unix, launchd
realmente creará el socket con los permisos apropiados y anunciará su ubicación a través de la variable de entorno nombrada en la lista de propiedades del trabajo. Cuando se inicia el trabajo, en realidad se le pasará un descriptor de archivo al socket al launchd
cuando realice un simple check-in.
En última instancia, esto significa que todo el proceso del front-end que abre el zócalo para comunicarse con el daemon, launchd
iniciando el daemon, y el daemon que responde a la comunicación puede ser seguro, incluso si el front-end y el daemon ejecutar en diferentes niveles de privilegios.
Desafortunadamente, el lanzamiento es lamentablemente poco documentado estos días. – uchuugaka
En general, me pareció útil la página de manual de 'launchd'. Si tiene alguna pregunta al respecto, sería bueno que pregunte en Stack Overflow. –