Estoy portando una aplicación C ++ / Qt desde Windows. En Windows, el programa se ejecuta como un servicio. No se recomienda que los programas que se ejecutan como un servicio también interactúen con el usuario y muestren los elementos de la GUI.
Por lo tanto, mi programa tiene dos partes. La primera parte se ejecuta como un demonio de servicio y reproduce audio en segundo plano. El programa se inicia cuando se inicia la computadora. El segundo programa, que se inicia cuando cualquier usuario inicia sesión (a través del menú Inicio - > Todos los usuarios- > Inicio), se comunica a través del socket local con el demonio de servicio para mostrar una ventana emergente de la GUI cuando se reproduce el audio.
Pasando a MacOS, ¿cuál es la mejor práctica para utilizar el mismo programa?
¿Debo combinar ambos programas en uno y ejecutarlo como root a través de launchd y tener la interfaz gráfica de usuario de un demonio, así como reproducir audio?
¿O debería preferir mantenerlo como dos programas como ahora? ¿El demonio root reproduce audio y encuentra una forma en que el segundo programa pueda ejecutarse automáticamente cuando cada usuario inicia sesión?