1 votes

Pourquoi le launchd a plusieurs instances par utilisateur (pas seulement moi et Root, mais aussi _spotlight et _windowserver) ?

J'ai trouvé que le launchd Le processus a plusieurs instances dans la liste des processus. Ce qui est intéressant, c'est qu'il y a quatre utilisateurs sous lesquels ces processus ont été créés. launchd sont en cours d'exécution :

  • Racine
  • < utilisateur_courant [c'est-à-dire moi] >
  • _windowserver
  • _spotlight

Comme décrit dans les documents d'Apple ( Création de démons de lancement et d'agents ), launchd seront lancés par utilisateur. Mais pourquoi les utilisateurs qui ont besoin launchd comme _spotlight y _windowserver . Je m'attendrais seulement root y <current_user[i.e. me]> . Pourquoi les deux utilisateurs ( _spotlight y _windowserver ) nécessite le launchd ? J'apprécierais toute référence à la documentation d'Apple ou à toute autre ressource.

le processus parent-enfant Les relations sont les suivantes :

kernel_task(0,root) -> launchd(1,root) -> launchd(130, _windowserver)
                                       -> launchd(150, <current_user[i.e. me]>)
                                       -> launchd(470, _spotlight)

2voto

Oskar Points 1242

La réponse claire est qu'en séparant les processus en utilisateurs, vous séparez les permissions dont chaque processus hérite. C'est un idiome Unix de longue date pour la sécurité et le contrôle des ressources en plaçant des limites par utilisateur sur des choses comme les fichiers ouverts, la mémoire et même les threads/processus.

Sous OS X, Spotlight doit lancer des processus pour indexer les fichiers, le serveur de fenêtres est responsable de l'affichage de l'écran de verrouillage et de la préparation de la connexion du premier utilisateur graphique. Root est le compte administrateur de facto avec de larges niveaux de pouvoir et de permissions. Chaque processus utilisateur reçoit un launchd pour démarrer les programmes et les choses dont il a besoin.

En ce qui concerne la documentation officielle, je commencerais par cet article sur les démons et les services.

https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/Introduction.html

Il montre la répartition entre le niveau utilisateur et le niveau système dès la première page. Vous pouvez rechercher d'autres sujets sur launchd à partir de ce lien si nécessaire (ou utiliser Xcode pour parcourir la documentation hors ligne).

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X