39 votes

Quelle est la différence entre un `service-name` et un `service-target` ?

Considérons les commandes suivantes

# launchctl stop 
Usage: launchctl stop <service-name>
# launchctl stop com.apple.SomeService
# launchctl disable com.apple.SomeService
Usage: launchctl disable <service-target>

Quelle est la différence entre un service-cible et un service-name ? Comment puis-je apprendre le service-cible d'un service à partir de son nom de service ?

40voto

sengi Points 496

Un service cible est un nom de service plus un domaine cible, qui décrit le contexte dans lequel le service s'exécute, par exemple s'il s'exécute au démarrage du système ou lorsqu'un utilisateur particulier se connecte, etc.

La page de manuel launchctl(1) décrit 6 façons de former une cible de service à partir d'un nom de service. Si vous voulez désactiver un service qui s'exécute au démarrage, vous voudrez probablement utiliser l'une de ces trois méthodes, selon qu'il s'agit d'un service qui s'exécute au démarrage du système ou lorsque vous vous connectez :

system/[service-name]
    Targets the system domain or a service within the system domain. The system
    domain manages the root Mach bootstrap and is considered a privileged execu-
    tion context. Anyone may read or query the system domain, but root privi-
    leges are required to make modifications.

user/<uid>/[service-name]
    Targets the user domain for the given UID or a service within that domain. A
    user domain may exist independently of a logged-in user. User domains do not
    exist on iOS.

gui/<uid>/[service-name]
    Another form of the login specifier. Rather than specifying a user-login
    domain by its ASID, this specifier targets the domain based on which user it
    is associated with and is generally more convenient.

Vous pouvez trouver le numéro d'uid de votre compte utilisateur comme ceci :

$ id -u
502

38 votes

Existe-t-il un moyen de passer du "label" de service ou PID affiché par launchchtl list au "service-cible" sans essayer tous ces domaines possibles ?

1 votes

Utiliser gui/<PID>/<service-name> au lieu de user/<PID>/<service-name>

1 votes

Si vous voulez voir les services associés au pid, à partir de la liste launchctl, utilisez launchctl print pid/<pid> Le message "Impossible d'imprimer le domaine" apparaît parfois : 1 : Opération non autorisée.

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