¿Por qué launchd tiene varias instancias por usuario (no solo yo y root, sino también _spotlight y _windowserver)?

1

Encontré que el proceso launchd tiene varias instancias en la lista de procesos. Lo que parece interesante es que hay cuatro usuarios bajo los cuales se ejecutan estos procesos launchd :

  • raíz
  • < usuario_actual [es decir. yo] >
  • _windowserver
  • _spotlight

Tal como se describe en los documentos de Apple ( Creación de demonios y agentes de lanzamiento ), launchd se lanzará por usuario. Pero, ¿por qué los usuarios requieren launchd , como _spotlight y _windowserver ? Esperaría solo root y <current_user[i.e. me]> . ¿Por qué ambos usuarios ( _spotlight y _windowserver ) requieren el launchd? Agradecería cualquier referencia a los documentos de Apple o cualquier otro recurso.

las relaciones de proceso padre-hijo son las siguientes:

kernel_task(0,root) -> launchd(1,root) -> launchd(130, _windowserver)
                                       -> launchd(150, <current_user[i.e. me]>)
                                       -> launchd(470, _spotlight)
    
pregunta static 30.04.2014 - 21:53

1 respuesta

2

La respuesta clara es que al separar los procesos en usuarios, se separan los permisos que cada proceso hereda. Este es un lenguaje de Unix de larga data para la seguridad y el control de los recursos al colocar límites por usuario en cosas como archivos abiertos, memoria e incluso subprocesos / procesos.

En OS X: Spotlight necesita generar procesos para indexar archivos, Windows Server es responsable de mostrar la pantalla de bloqueo y las cosas que debe preparar para que el primer usuario gráfico inicie sesión. Root es la cuenta de administrador de facto con amplios niveles de Poder y permisos. Cada proceso de usuario obtiene un launchd para iniciar los programas y las cosas que necesitan.

En cuanto a la documentación oficial, comenzaría con este artículo sobre Daemons and Services.

enlace

Muestra la división de nivel de usuario contra sistema ya en la primera página. Puede buscar otros temas de lanzamiento desde ese enlace si es necesario (o usar Xcode para navegar por la documentación sin conexión).

    
respondido por el bmike 30.04.2014 - 22:03

Lea otras preguntas en las etiquetas