27 votes

Pourquoi cron est-il déprécié ?

Je viens de découvrir que cron a été déprécié dans Mac OS X. Pourquoi cela, et sera-t-il éventuellement supprimé des futures versions ?

32voto

michaelmichael Points 3321

Avec la sortie de Mac OS 10.4, launchd a été choisi pour remplacer cron dans Mac OS. Voici un version en cache de la page launchd de l'Apple Developer Connection en 2005. Il explique pourquoi cron a été déprécié, ainsi que les avantages de l'option launchd du point de vue d'Apple.

Le résumé : launchd a été créé pour ne pas seulement remplacer cron mais aussi init , xinetd pour de meilleures performances, et un meilleur contrôle de la configuration et des tâches elles-mêmes.

Le site launchd offre une interface unique et standardisée pour tous les programmes lancés automatiquement par le système. De plus, les fichiers de configuration qui déterminent quand lancer un programme donné peuvent également spécifier les limites de ressources et les variables d'environnement, ce qui simplifie la configuration et la sécurité de nombreux programmes. Le même format de fichier de configuration est utilisé qu'un travail soit lancé une fois au démarrage du système ou à la connexion de l'utilisateur, à la demande sur le réseau, ou à intervalles.

17voto

Oskar Points 1242

cron est toujours livré sur MacOS 11 Big Sur, mais cela étant dit...

L'article de wikipedia sur lancé sur le marché propose un très bon résumé, des discussions approfondies ainsi que d'excellentes vidéos et des liens externes pour approfondir cette décision d'Apple.

En un mot, launchd remplace 7 tâches majeures et une cargaison de scripts ( inetd , init y rc et les structures script du shell associées, crond , atd , chien de garde , SystemStarter ) avec un outil open sourced beaucoup plus puissant.

Pourquoi ?

  • plus rapide grâce au contrôle optimisé des lancements et aux lancements retardés jusqu'à ce qu'ils soient nécessaires, des séquences d'actions plus sophistiquées sont désormais possibles
  • gère les préoccupations en matière d'efficacité énergétique en accord avec la nouvelle conception du CPU
  • plus puissants dans l'ensemble que les anciens outils
  • contrôle unifié et centralisé des processus
  • plus sécurisé dès la conception

Quand : 29 avril 2005 (date de mise en vente d'OS X Tiger)

Rien ne nous empêche d'utiliser launchd pour lancer cron maintenant sur Tiger, Leopard ou Snow Leopard.

Le futur Apple devrait-il arrêter de livrer /usr/sbin/cron il finira sûrement comme wget et d'autres outils open source matures qui sont compilés et doivent être ajoutés en tant qu'outil de ligne de commande distinct.

11voto

Matthew Crenshaw Points 123

D'autres ont déjà répondu pourquoi cron a été remplacée. Quant à l'autre question :

sera-t-il finalement complètement supprimé des futures versions ?

cron est un utilitaire/service obligatoire des normes POSIX et Unix. Ainsi, il n'y a que deux circonstances dans lesquelles cron serait en fait retiré de MacOS :

  1. Apple décide qu'être un système Unix officiellement certifié ne vaut pas la peine de perdre son temps (peu probable).
  2. cron est retiré de la spécification unique d'Unix (encore moins probable)

Si l'une de ces deux choses se produit, alors vous devriez ressentir une certaine urgence à porter vos crontabs vers les services launchctl. Ou alors, compilez simplement un cron open source et exécutez-le sur MacOS afin d'exécuter vos crontabs.

9voto

Je ne sais même pas si cron a été déprécié. man crontab semble indiquer que ce n'est pas le cas :

(Note Darwin : Bien que cron(8) et crontab(5) soient officiellement supportés sous Darwin, leur fonctionnalité a été absorbée dans launchd(8), qui fournit une manière plus flexible d'exécuter automatiquement des commandes. Voir launchctl(1) pour plus d'informations).

Guide de programmation des démons et services indique qu'il a été déprécié :

Remarque : bien qu'il soit toujours pris en charge, cron n'est pas une solution recommandée. Il a été déprécié au profit de launchd.

crontab est également requis par POSIX et OS X est censé être compatible avec le SUS.

Dans tous les cas, cron ne cessera probablement pas de fonctionner de sitôt, et je ne sais pas si on peut dire qu'il est plus lent ou moins sûr que launchd. Le processus cron ne devrait pratiquement pas utiliser de temps CPU ou de mémoire. Certains avantages de l'utilisation ou de l'apprentissage de cron sont qu'il est également disponible sur d'autres plateformes, et que le format de configuration est plus simple.

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