Différence entre le chargement et le démarrage, le déchargement et l'arrêt

20

Je lisais la page de manuel launchctl et me posais quelques questions sur son fonctionnement:

  • Quelle est la différence entre charger et démarrer, décharger et arrêter?
  • Où puis-je trouver le libellé de travail pour un démon, est-il dans le fichier plist?
Jason Rubenstein
la source

Réponses:

10

TL; DR

  • Vous voulez généralement utiliser launchctl load -wet launchctl unload -w.
  • startet stopsont généralement réservés au test ou au débogage d'un travail.

Détails

  • launchctl start <label>: Commence le travail. Ceci est généralement réservé uniquement pour tester ou déboguer un travail particulier.
  • launchctl stop <label>: Arrête le travail. Inverse du début et il est possible que le travail redémarre immédiatement si le travail est configuré pour rester en cours d'exécution.

  • launchctl remove <label>: Supprime le travail launchd, mais de manière asynchrone. Il n'attendra pas que le travail s'arrête réellement avant de revenir, donc aucune gestion d'erreur sur celui-ci.

  • launchctl load <path>: Charge et démarre le travail tant qu'il n'est pas "désactivé".
  • launchctl unload <path>: Arrête et décharge le travail. Le travail redémarrera toujours à la prochaine connexion / réinitialisation.

  • launchctl load -w <path>: Charge et démarre le travail tout en le marquant comme "non désactivé". Le travail redémarrera à la prochaine connexion / réinitialisation.
  • launchctl unload -w <path>: Arrête, décharge et désactive le travail. Le travail NE redémarrera PAS à la prochaine connexion / redémarrage.

Où puis-je trouver le libellé de travail pour un démon, est-il dans le fichier plist?

Oui, c'est dans le fichier plist et cela correspond généralement au nom de fichier du fichier plist.

Ryan McGeary
la source
7

Le chargement et le déchargement indiquent à launchd de charger le fichier de configuration. Si le programme est exécuté et dans quelles conditions est déterminé par le fichier plist. Un travail qui n'est pas en cours d'exécution peut être démarré launchctl start ...et arrêté launchctl stop ....

L'étiquette du travail est définie par la clé d'étiquette, et le nom du plist doit également être celui du travail suivi de l'extension du plist.

Jay Thompson
la source
6
Comment supprimer le facteur dans ceci? Plus précisément, en quoi est-ce différent du déchargement?
chrisortman
@chrisortman remove est comme décharger, sauf qu'il n'attend pas que le travail s'arrête en premier. Il retourne immédiatement immédiatement sans vérifier si des erreurs se sont produites.
Ryan McGeary