¿Los ejecutables en OS X deben construirse de manera específica para ser utilizados como un servicio?

3

¿Es necesario crear un ejecutable OS X de una manera específica (por ejemplo, sin interfaz de usuario, implementar ciertas interfaces) para que pueda usarse como un servicio? ¿Esto varía según su lenguaje (por ejemplo, Objective C, Java) o su implementación (compilado versus script)?

    
pregunta craig 14.12.2018 - 15:42

1 respuesta

2

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.

    
respondido por el Graham Miln 14.12.2018 - 16:13

Lea otras preguntas en las etiquetas