Me acabo de enterar que cron
ha quedado en desuso en Mac OS X. ¿Por qué es esto, y eventualmente será eliminado por completo de futuras versiones?
Con el lanzamiento de Mac OS 10.4, launchd
fue elegido para reemplazar cron
en Mac OS. Aquí hay una versión en caché de la página de lanzamiento de Apple Developer Connection en 2005. Explica por qué cron
fue obsoleto, así como los beneficios launchd
desde la perspectiva de Apple.
El resumen: launchd
fue creado para sustituir no sólo cron
, sino también init
, xinetd
para un mejor rendimiento y un mejor control sobre la configuración y las mismas tareas reales.
El
launchd
daemon 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. Se utiliza el mismo formato de archivo de configuración, ya sea que un trabajo se inicie 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 sobre launchd tiene un muy buen resumen, discusiones extendidas, así como algunos videos excelentes y enlaces externos para profundizar en esta decisión de Apple.
En pocas palabras, launchd
reemplaza 7 tareas principales y una gran cantidad de scripts ( inetd , init y rc y estructuras de script de shell asociadas, crond , atd , watchdogd , SystemStarter ) con una herramienta de fuente abierta mucho más poderosa.
Por qué:
Cuándo: 29 de abril de 2005 (cuando OS X Tiger fue lanzado a la venta)
No hay nada que nos impida a todos usar launchd para iniciar cron ahora en Tiger, Leopard o Snow Leopard.
Si el futuro Apple deja de enviarse /usr/sbin/cron
, seguramente terminará como wget y otras herramientas maduras de código abierto que se compilan y deben agregarse como una herramienta de línea de comandos separada.
Ni siquiera sé si cron ha quedado en desuso. 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. Consulte launchctl (1) para obtener más información. .)
Sin embargo, la Guía de programación de servicios y demonios dice que ha quedado en desuso:
Nota: Aunque todavía es compatible, cron no es una solución recomendada. Ha quedado en desuso a favor de launchd.
POSIX también requiere crontab , y se supone que OS X es compatible con SUS.
En cualquier caso, cron probablemente no dejará de funcionar pronto, y no sé si puede decirse que es más lento o menos seguro que el lanzamiento. El proceso cron casi no debe usar 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.