Pourquoi le cron est-il obsolète?

21

Je viens de découvrir que ce système cronest devenu obsolète sous Mac OS X. Pourquoi cela, et sera-t-il finalement complètement supprimé des versions futures?

eckza
la source

Réponses:

24

Avec la sortie de Mac OS 10.4, a launchdété choisi pour remplacer cronMac OS. Voici une version mise en cache de la page de lancement d'Apple Developer Connection en 2005. Elle explique pourquoi a cronété déconseillée, ainsi que les avantages du launchdpoint de vue d'Apple.

Le résumé: a launchdété créé non seulement pour remplacer cronmais aussi init, xinetdpour de meilleures performances et un meilleur contrôle sur la configuration et les tâches elles-mêmes.

Le launchddémon offre une interface unique et standardisée à tous les programmes démarrés automatiquement par le système. De plus, les fichiers de configuration qui déterminent quand exécuter un programme donné peuvent également spécifier des limites de ressources et des 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'une tâche soit lancée une fois au démarrage du système ou à la connexion de l'utilisateur, à la demande sur le réseau ou à intervalles.

michaelmichael
la source
13

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

En bref, launchdremplace 7 tâches principales et une cargaison de scripts ( inetd , init et rc et structures de script shell associées, crond , atd , watchdogd , SystemStarter ) par un outil open source beaucoup plus puissant.

Pourquoi:

  • plus rapide
  • plus puissant
  • unifié et centralisé
  • plus sûr

Quand: 29 avril 2005 (quand OS X Tiger a été mis en vente)

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

Si le futur Apple arrête 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.

bmike
la source
5

Je ne sais même pas si cron a été déprécié. man crontabsemble indiquer qu'il n'a pas:

(Remarque Darwin: bien que cron (8) et crontab (5) soient officiellement pris en charge sous Darwin, leurs fonctionnalités ont été absorbées dans launchd (8), qui fournit un moyen plus flexible d'exécuter automatiquement les commandes. Voir launchctl (1) pour plus d'informations .)

Le guide de programmation des démons et des services indique qu'il est obsolète:

Remarque: Bien qu'il soit toujours pris en charge, cron n'est pas une solution recommandée. Il est déconseillé au profit de launchd.

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

Dans tous les cas, cron ne s'arrêtera probablement pas de sitôt, et je ne sais pas si on peut dire qu'il est plus lent ou moins sécurisé que launchd. Le processus cron ne devrait utiliser presque pas de temps CPU ni de mémoire. Certains avantages de l'utilisation ou de l'apprentissage de cron sont qu'il est également disponible sur d'autres plates-formes et que le format de configuration est plus simple.

Lri
la source