¿Cuál es la diferencia entre cron y lauchd? Siempre he utilizado cron, pero recientemente he oído que launchd es mejor. ¿Por qué? ¿En qué sentido es mejor cron? ¿En qué sentido es mejor launchd?
Respuesta
¿Demasiados anuncios?launchd hace mucho más que cron. Además de ejecutar programas a determinadas horas, también puede ejecutarlos en función de otros desencadenantes: conexión de red entrante, cuando se añade un archivo a una determinada carpeta, etc. También puede relanzar un programa si se bloquea.
Si estás interesado en él específicamente como un reemplazo de cron, la principal diferencia es cómo maneja el estar dormido o apagado cuando un trabajo está programado para ejecutarse. En este caso, cron simplemente no ejecuta el trabajo, pero launchd se dará cuenta de que se ha perdido una ejecución programada y la ejecutará en la próxima oportunidad (aunque si se ha perdido varias ejecuciones programadas, sólo la ejecutará una vez).
Edición: También debo señalar algunas cosas que cron puede hacer que launchd no puede: el envío automático de informes de fallos por correo electrónico (tendría que escribir una envoltura script para hacer esto con launchd) y trabajos definidos por el usuario que se ejecutan incluso cuando el usuario no está conectado (un usuario puede definir elementos de launchd en ~/Library/LaunchAgents, pero sólo se ejecutan dentro de una sesión de inicio de sesión).