Acabo de descubrir que cron
ha quedado en desuso en Mac OS X. ¿Por qué sucede esto y finalmente se eliminará por completo de futuras versiones?
Acabo de descubrir que cron
ha quedado en desuso en Mac OS X. ¿Por qué sucede esto y finalmente se eliminará por completo de futuras versiones?
Con el lanzamiento de Mac OS 10.4, se eligió launchd
para reemplazar a cron
en Mac OS. Aquí hay una versión en caché de la página de launchd del Apple Developer Connection en 2005. Explica por qué cron
quedó en desuso, así como los beneficios de launchd
desde la perspectiva de Apple.
El resumen: launchd
se creó para no solo reemplazar cron
sino también init
, xinetd
para un mejor rendimiento y un mejor control sobre la configuración y las tareas reales en sí mismas.
El daemon
launchd
ofrece una interfaz única y estandarizada para todos y cada uno de los programas iniciados automáticamente por el sistema. Además, los archivos de configuración que determinan cuándo ejecutar un programa determinado también pueden especificar límites de recursos y variables de entorno, lo que simplifica la configuración y la seguridad de muchos programas. El mismo formato de archivo de configuración se usa si un trabajo se inicia una vez al inicio del sistema o al inicio de sesión del usuario, a pedido a través de la red o a intervalos.
El artículo de wikipedia en launchd tiene un muy buen resumen, discusiones extendidas así como algunos videos geniales y enlaces externos para Una inmersión más profunda en esta decisión por parte de Apple.
En pocas palabras, launchd
reemplaza 7 tareas principales y una gran cantidad de scripts ( inetd , init y rc y el script de shell asociado estructuras, crond , atd , watchdogd , SystemStarter ) con una herramienta de código abierto mucho más poderosa.
Por qué:
Cuándo: 29 de abril de 2005 (cuando se lanzó a la venta OS X Tiger)
No hay nada que nos impida a todos usar launchd para iniciar cron ahora en Tiger, Leopard o Snow Leopard.
Si Apple deja de enviar /usr/sbin/cron
, seguramente terminará como wget y otras herramientas maduras de código abierto que se compilan y se deben agregar como una herramienta de línea de comandos separada.
Ni siquiera sé si cron ha sido desaprobado. man crontab
parece indicar que no tiene:
(Nota de Darwin: Aunque cron (8) y crontab (5) son oficialmente compatibles con Darwin, su funcionalidad ha sido absorbida por launchd (8), que proporciona una forma más flexible de ejecutar comandos automáticamente. Ver launchctl (1) para más información.)
La Guía de Programación de Demonios y Servicios dice que ha quedado en desuso:
Nota: aunque todavía es compatible, cron no es una solución recomendada. Ha sido desaprobado a favor de launchd.
crontab también es requerido por POSIX , y se supone que OS X es compatible con SUS.
En cualquier caso, es probable que cron no deje de funcionar pronto, y no sé si se puede decir que sea más lento o menos seguro que launchd. El proceso cron no debería usar casi ningún tiempo de CPU o memoria. Algunas ventajas de usar o aprender cron son que también está disponible en otras plataformas, y el formato de configuración es más simple.