Un ejecutable en macOS puede ejecutarse como un servicio o aplicación casi independientemente de cómo se haya creado.
La pregunta que debe hacerse es, ¿el proceso requiere acceso al WindowServer? El WindowServer es necesario para proporcionar una interfaz gráfica.
Interfaz gráfica de usuario y sesiones de usuario
Un proceso que requiere una interfaz gráfica de usuario se puede utilizar como un proceso o servicio en segundo plano. Para ello, inicie el proceso con launchd
desde la carpeta /Library/LaunchAgents
.
Para presentar una interfaz gráfica de usuario, el proceso debe iniciarse dentro de una sesión de usuario. En términos de launchd
, esto significa dentro de un entorno Aqua
.
Un ejemplo de esto sería pmuser
proceso. Este proceso administra las tareas específicas para el usuario y maneja las tareas en todo el equipo % El proceso pmd
no se puede realizar directamente.
Procesos de toda la computadora
Un proceso que no requiere una interfaz de usuario se puede iniciar como un servicio en segundo plano con launchd
de la carpeta /Library/LaunchDaemons
.
Un proceso no gráfico puede existir fuera de cualquier sesión de usuario y, por lo tanto, ejecutarse incluso cuando nadie ha iniciado sesión.
Un proceso en toda la computadora no puede acceder a gran parte de la funcionalidad única de macOS. Consulte TechNote 2083 de Apple y la Living Dangerously sección.