Estoy portando una aplicación C++/Qt desde Windows. En Windows, el programa se ejecuta como un servicio. Se desaconseja que los programas que se ejecutan como servicio también interactúen con el usuario y muestren elementos de la interfaz gráfica de usuario.
Por lo tanto, mi programa tiene dos partes. La primera parte se ejecuta como un demonio de servicio y reproduce el audio en segundo plano. El programa se pone en marcha cuando se inicia el ordenador. El segundo programa, que se inicia cuando cualquier usuario se conecta (a través del menú de inicio->Todos los usuarios->Inicio), se comunica a través de un socket local con el demonio de servicio para mostrar una interfaz gráfica de usuario emergente cuando el audio se está reproduciendo.
Al pasar a MacOS, ¿cuál es la mejor práctica para utilizar el mismo programa?
¿Debería fusionar ambos programas en uno solo y ejecutarlo como Root a través de launchd y hacer que el demonio único muestre la GUI además de reproducir el audio?
¿O debería mantenerlo como dos programas como es ahora - el demonio Root reproduciendo audio y encontrar una manera de que el segundo programa pueda ejecutarse automáticamente cuando cada usuario se conecte?