8 votes

Quelle est la différence entre le démarrage d'un service et le démarrage d'un service dans un domaine?

Sur macOS (Darwin, dérivé de 4.4BSD), vous avez ce gestionnaire de processus astucieux appelé launchd contrôlé par launchctl, analogique à systemd et systemctl.

Exécuter launchctl seul vous donne une liste de sous-commandes. Parmi elles se trouvent bootstrap et load. Quelle est/sont la/les différence(s) entre eux ?

Sous-commandes :
    bootstrap     Amorce un domaine ou un service dans un domaine.
    bootout       Détruit un domaine ou supprime un service d'un domaine.
    enable        Active un service existant.
    disable       Désactive un service existant.
    uncache       Supprime le nom de service spécifié du cache des services.
    kickstart     Force le démarrage d'un service existant.
    attach        Attache le débogueur du système à un service.
    debug         Configure la prochaine invocation d'un service pour le débogage.
    kill          Envoie un signal à l'instance de service.
    blame         Affiche la raison pour laquelle un service est en cours d'exécution.
    print         Affiche une description d'un domaine ou d'un service.
    print-cache   Affiche des informations sur le cache des services.
    print-disabled   Affiche quels services sont désactivés.
    plist         Affiche une liste de propriétés intégrée à un binaire (vise par défaut le Info.plist).
    procinfo      Affiche des informations de port sur un processus.
    hostinfo      Affiche des informations de port sur l'hôte.
    resolveport   Résout un nom de port d'un processus à un point de terminaison dans launchd.
    limit         Lit ou modifie les limites de ressources de launchd.
    runstats      Affiche des statistiques de performance pour un service.
    examine       Exécute l'outil d'analyse spécifié contre launchd de manière non réentrant.
    config        Modifie les paramètres de configuration persistants pour les domaines launchd.
    dumpstate     Bascule l'état de launchd sur stdout.
    dumpjpcategory    Bascule les propriétés de jetsam des catégories pour tous les services.
    reboot        Lance un redémarrage du système du type spécifié.
    bootshell     Relève le système du mode utilisateur unique avec un shell de console.
    load          Amorce un service ou un répertoire de services.
    unload        Décharge un service ou un répertoire de services.
    remove        Décharge le nom de service spécifié.
    list          Affiche des informations sur les services.
    start         Démarre le service spécifié.
    stop          Arrête le service spécifié s'il est en cours d'exécution.
    setenv        Définit les variables d'environnement spécifiées pour tous les services dans le domaine.
    unsetenv      Annule la valeur des variables d'environnement spécifiées pour tous les services dans le domaine.
    getenv        Obtient la valeur d'une variable d'environnement depuis launchd.
    bsexec        Exécute un programme dans le contexte d'amorce d'un autre processus.
    asuser        Exécute un programme dans le contexte d'amorce d'un utilisateur donné.
    submit        Soumet un travail de base à partir de la ligne de commande.
    managerpid    Affiche l'ID du processus de lancement contrôlant la session.
    manageruid    Affiche l'UID de la session de lancement actuelle.
    managername   Affiche le nom de la session de lancement actuelle.
    error         Affiche une description d'une erreur.
    variant       Affiche la variante de launchd.
    version       Affiche la version de launchd.
    help          Affiche l'utilisation pour une sous-commande donnée.

8voto

Noah Nuebling Points 642

Apple a réécrit launchd dans OS X Yosemite (10.10)

D'après ce que je comprends, ils ont ajouté bootstrap | bootout pour remplacer load | unload. load | unload sont actuellement répertoriés sous LEGACY SUBCOMMANDS dans le manuel de launchctl.

La principale différence lorsque vous essayez simplement de charger ou décharger un agent/démon est que bootstrap | bootout vous oblige à être explicite sur le domaine cible dans lequel l'agent/démon sera chargé.

Découvrez ce super article de blog sur certains des changements apportés à la syntaxe de launchctl dans la réécriture de launchd pour OS X Yosemite pour plus de détails sur tout ce dont je viens de parler.

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