Quelle est la différence entre cron et launchd?

4

Quelle est la difference entre cron et lauchd? J'ai toujours utilisé cron, mais j'ai récemment entendu dire que launchd est meilleur. Pourquoi? En quoi cron est-il meilleur? De quelle manière est mieux lancé?

daviesgeek
la source

Réponses:

4

launchd fait beaucoup plus que cron. En plus d'exécuter des programmes à certains moments, il peut également les exécuter en fonction d'autres déclencheurs: connexion réseau entrante, lorsqu'un fichier est ajouté à un certain dossier, etc. Il peut également relancer un programme s'il se bloque.

Si vous êtes intéressé par le remplacement de cron, la principale différence réside dans la manière dont il gère le fait de s’endormir ou de s’arrêter lorsqu’un travail est planifié pour être exécuté. Dans ce cas, cron n'exécute tout simplement pas le travail, mais launchd remarquera qu'une exécution planifiée a été manquée et l'exécutera à la prochaine opportunité (bien que s'il manque plusieurs exécutions planifiées, il ne l'exécutera qu'une fois).

Edit: je devrais également signaler certaines choses que cron peut faire que launchd ne le peut pas: envoi automatique par courrier électronique des rapports d’échec (vous devez écrire un script wrapper pour le faire avec launchd) et des tâches définies par l’utilisateur qui sont exécutées même lorsque l’utilisateur est absent. Je ne suis pas connecté (un utilisateur peut définir des éléments launchd dans ~ / Library / LaunchAgents, mais ils ne s'exécutent que dans le cadre d'une session de connexion).

Gordon Davisson
la source
Impressionnant! Passage à launchd!
daviesgeek
1
Au moins selon le Guide de programmation des démons et services , l’exécution ultérieure de travaux manqués s’applique uniquement aux travaux planifiés pendant la mise en veille (pas à l’arrêt) et par StartCalendarInterval.
Lri