Programación de procesos: ¿Qué son Cron, Anacron, Systemd y Launchd?

Los sistemas operativos permiten el uso fácil de computadoras y otros dispositivos digitales. macOS se usa en Apple Mac e iOS en el iPhone. Para que todo funcione, existen interfaces visibles, opciones de interacción y programas, pero también procesos, servicios del sistema y scripts que se ejecutan en segundo plano y, por lo tanto, no son visibles. Una parte de estas tareas en segundo plano es el programador, que inicia, controla y finaliza automáticamente ciertas tareas del sistema y procesos de mantenimiento. Uno de los primeros programadores basados ​​en Unix se llamó cron. Esto todavía es adecuado para los servidores de hoy. En las computadoras es más probable Anacrón o en Systemd para usar – en macOS es Lanzado.

El primer programador en los sistemas operativos basados ​​en Unix se llamó cron y trajo consigo cronjobs y crontab. Launchd ahora se usa en Apple Mac como un demonio para la programación y muchas otras tareas.
El primer programador en los sistemas operativos basados ​​en Unix se llamó cron y trajo consigo cronjobs y crontab. Launchd ahora se usa en Apple Mac como un demonio para la programación y muchas otras tareas.

Cron: Los inicios de la programación en la computadora

Cron (del griego "chronos" para "tiempo") ha sido durante mucho tiempo la herramienta estándar para programar en sistemas operativos similares a Unix. Originalmente desarrollado en la década de 1970, cron permitía a los usuarios de computadoras definir tareas para ejecutarlas en momentos específicos, en días específicos o en intervalos predefinidos. 

Esto abarcó desde tareas de mantenimiento del sistema hasta notificaciones e informes (generación de registros). Cron cumplió su propósito durante mucho tiempo, pero también tenía sus limitaciones. Por ejemplo, un usuario tenía que iniciar sesión para que se ejecutara cron. Cron todavía se usa en servidores hoy en día, ya que es muy adecuado para sistemas en ejecución permanente.

¿Qué es un trabajo cron?

Un trabajo cron es una tarea programada y ejecutada por el programador cron. Es por tanto un proceso ejecutado basado en el tiempo, un programa o un script. El sistema, una aplicación o el usuario pueden configurar un trabajo cron para programar tiempos específicos para tareas individuales o para ejecutar repetidamente un comando en un intervalo específico. El mantenimiento del sistema, la copia de seguridad de los datos, la creación de informes (archivos de registro) y la limpieza de las bases de datos son ejemplos de uso aquí. 

¿Qué es un crontab?

Para definir y programar trabajos cron, hay un crontab ("pestaña" significa tabla). En los sistemas operativos basados ​​en Unix, es un archivo de configuración que se puede ver como una especie de resumen de tiempo o calendario. En la descripción general de crontab, los tiempos de ejecución con diferentes fechas se establecen para comandos individuales, procesos, scripts, aplicaciones y similares: mes, día del mes, día de la semana, hora, minuto y/u otros. La tabla crontab se puede editar en la línea de comando o en el terminal ver y editar. Varios comandos crontab están disponibles para esto.

La tabla crontab consta de seis columnas, la última de las cuales se utiliza para ejecutar el comando. Las cinco columnas delante del comando determinan el tiempo de ejecución del mismo, de forma que al leer la tabla de forma permanente se reconoce el tiempo alcanzado y se puede ejecutar el comando al final de la línea. Las cinco columnas de programación generalmente se dividen de la siguiente manera:

  • Minuto (0-59): el minuto dentro de una hora en que se debe ejecutar la tarea.
  • Hora (0-23): la hora del día en que se debe ejecutar la tarea.
  • Día del mes (1-31): el día del mes en el que se ejecutará la tarea.
  • Mes (1-12): el mes en el que se ejecutará la tarea.
  • Día de la semana (0-6): el día de la semana (de domingo a sábado) en el que ejecutar la tarea; el valor 7 también se puede usar para representar el domingo (dividiendo así la semana de 1 a 7).

Las soluciones más modernas, como Anacron, Systemd y Launchd, son en su mayoría compatibles con versiones anteriores de cronjobs y crontab, por lo que estas tecnologías de Unix aún se pueden usar con los comandos de terminal apropiados para la programación manual.

Anacron: las tareas perdidas simplemente se compensan

Anacron se desarrolló como una tecnología cron avanzada para abordar algunas debilidades de cron, p. B. la dependencia de un usuario activo. En el caso de muchas tareas que debían realizarse en horarios fijos, también existía el riesgo de que simplemente se perdieran si el usuario correspondiente no estaba logueado. 

Anacron resolvió este problema personalizando las tareas para que aún se pudieran realizar incluso si se perdían. Para este propósito, se consultaron las tareas pasadas y se verificó si entregaron un resultado o se anotaron en un registro. Si este no era el caso, estaban compensados. Por lo tanto, Anacron es útil para computadoras y portátiles que no funcionan continuamente.

Systemd: sistema de inicialización, programación y más en uno

El nombre systemd consta de "system" para el sistema operativo y "d" como abreviatura de daemon. Un demonio es un proceso en segundo plano (más sobre esto aquí: ¿Qué es un demonio?). Pero systemd es más que un simple proceso en segundo plano, incluye un llamado sistema de inicio. La abreviatura init significa "inicialización" e indica que se trata de iniciar el sistema operativo y cargar los procesos, servicios y recursos necesarios para ello. 

O para decirlo brevemente: Systemd es una colección de procesos que asegura el funcionamiento de un sistema y ofrece varios horarios y regularidades para ello. En la parte superior de la lista está el proceso systemd-init, que se llama primero (ID de proceso 1) y controla el inicio, la supervisión y la finalización de otros procesos, en su mayoría demonios que se ejecutan en segundo plano. Otros componentes de systemd brindan capacidades de crontab, crean archivos de registro y más.

El resumen más breve lo proporciona Entrada de Wikipedia sobre el tema: "systemd es el demonio que inicia y mantiene el sistema."

Lanzado: sistema de inicio desde Mac OS X 10.4 Tiger

Hasta que finalmente Mac OS X 10.3 Panther Desde 2003, Apple se basó en el proceso de inicio estándar para Mac para iniciar el sistema y cron para programar el sistema. Desde Mac OS X 10.4 Tiger, que acompañó la transición de PowerPC Mac a modelos con procesadores Intel de 2005 a 2007, Launchd se utiliza como una colección de procesos de inicialización y programación. El demonio launchd es comparable a systemd y también proporciona un marco para administrar otros demonios y tareas. Launchd consta de "Launch" para iniciar el sistema y "d" para los demonios.

Al igual que systemd en otros sistemas basados ​​en Unix, launchd también es responsable del inicio del sistema, es decir, el proceso de arranque, en computadoras con macOS. Por lo tanto, a Launchd también se le asigna el ID de proceso 1. Además, este demonio principal, junto con los demonios que inicia y otras tareas en segundo plano, se ejecuta mientras el sistema operativo está activo y en uso. Encender la computadora y usar el sistema operativo se puede imaginar de una manera muy simplificada como un proceso de cuatro pasos, que se divide de la siguiente manera:

  • El firmware se carga para verificar el hardware y habilitarlo para su uso.
  • El kernel y sus extensiones se cargan y luego el kernel activa launchd.
  • Launchd inicia y busca en los directorios del daemon del usuario y del sistema, lo que resulta en la carga de las configuraciones individuales. A continuación, se muestra la ventana de inicio de sesión.
  • Mientras la Mac está encendida (y si macOS se usa activamente), Launchd ejecuta ciertos procesos en segundo plano y trabajos cron de acuerdo con los archivos plist del sistema y del usuario y el crontab.

Launchd en Mac: lanzamientos más rápidos y sistemas más eficientes

Pero Launchd también maneja otras tareas complejas. Fue diseñado por Apple para la eficiencia de ahorro de recursos. En términos prácticos, esto significa, entre otras cosas, que solo se cargan los demonios necesarios cuando se inicia el sistema y cuando el usuario inicia sesión. Otros demonios solo se cargan cuando realmente se necesitan. 

Por ejemplo, la clave "OnDemand" se puede asignar a demonios de red para que Launchd solo los cargue cuando se necesiten para una solicitud de red ("on demand"). El resultado es que los sistemas operativos tienden a funcionar más rápido o mejor con Launchd. Esto puede permitir la compatibilidad con hardware más antiguo y más lento.

El papel de los archivos plist en el uso de Launchd

Como se indicó anteriormente, en Apple Mac, Launchd carga ajustes, configuraciones y demonios específicos para la administración de tareas. Entre otras cosas, se cargan desde directorios del sistema (por ejemplo, /System/Library/LaunchDaemons), que especifican ciertas propiedades y tareas del sistema operativo respectivo. Pero también de directorios de usuarios (por ejemplo, /Library/LaunchDaemons), que contienen los ajustes, configuraciones, extensiones y elementos de inicio de sesión individuales de los usuarios.

Cada uno de ellos se almacena en una lista de propiedades, o plist para abreviar. Los archivos plist de estos y otros directorios de macOS se utilizan, entre otras cosas, para personalizar el sistema y ejecutar procesos en segundo plano. Además de los efectos directamente visibles, también se utilizan para indexar contenido (p.ej. B para foco) o por Configuraciones de Bluetooth. Si tienen errores, pueden surgir problemas. Es por eso que algunas guías de solución de problemas de Mac recomiendan eliminar ciertos archivos plist.

Se puede encontrar más información en las publicaciones de Jens:

Resumen sobre el tema

En realidad, solo quería escribir una publicación sobre cron, cronjobs y crontab. Pero estas tecnologías de programación de Unix ya no se usan en su forma original en Apple Mac. Es por eso que mostré el desarrollo de los demonios de programación basados ​​en él. Desde Anacron a través de Systemd, la ruta conducía a Launchd, que se ha utilizado en Mac OS X, OS X y macOS desde hace algún tiempo. Espero haber podido explicar la funcionalidad de Launchd y cómo se relaciona con el sistema, las cuentas de usuario individuales y los archivos plist de una manera comprensible.

Aquí hay algunas fuentes para una lectura más amplia y, sobre todo, técnicamente más extensa:

  • Artículo de Wikipedia sobre el demonio cron: aquí
  • Artículo de Wikipedia sobre Anacron: aquí
  • Artículo de Wikipedia sobre systemd: aquí
  • Artículo de Wikipedia sobre Launchd: aquí
¿Te gustó el artículo y te ayudaron las instrucciones del blog? Entonces sería feliz si usted el blog a través de una membresía constante apoyaría.

9 respuestas a “Programación de procesos: ¿Qué son Cron, Anacron, Systemd y Launchd?”

  1. Compré una MacBook Pro M2 Pro 2023. Mi vieja Mac todavía tenía un procesador Intel, 7 años. La diferencia, el nuevo no se calienta. Si volveré a comprar uno nuevo en 7 años es una pregunta abierta. Estas piezas no son baratas. Pero cualquiera que haya tenido que trabajar con ordenadores con Windows apreciará un Apple. Hardware y software de una sola fuente. Debido a que la memoria no es tan agradable. Tienes que tomar lo que está en oferta.
    Echaré un vistazo más de cerca a tu portal.
    Oh, sí, ¿tiene una descripción de cómo Apple almacena los datos, excepto en los documentos?
    Si no configuro una carpeta para ello. Por ejemplo: las plantillas para Pages o Numbers.

    1. Hola Falck! Sí, las Mac siempre son un poco más caras, pero personalmente creo que el precio es justo si me ahorra los dolores de cabeza que he tenido con mi PC.
      Con respecto a tu pregunta: no lo entendí bien. ¿Qué quiere decir exactamente con "cómo Apple almacena los datos"?

  2. Estoy totalmente de acuerdo con el precio y esas cosas.
    Debido a los datos, Pages y Numbers tienen plantillas entre las que puedo elegir y puedo asegurar mi plantilla particular. La función de la biblioteca no me queda tan clara, se han agregado algunas cosas en Sonoma. Estas son áreas que se ejecutan en segundo plano. A eso me refería.

    1. Hola Falck! Lo siento si soy tan obtuso. No lo entiendo muy bien… estás hablando de Pages por ejemplo. ¿Dónde hay una biblioteca? ¿Te refieres a los "libros" debajo de las plantillas? ¿O estoy totalmente jodido? 😂

    1. Hola Falck.

      Primero: ¡No seas descarado!

      En segundo lugar, ¿qué tal si haces tu pregunta correctamente, para que la gente sepa lo que quieres en primer lugar?

      Después de todo, debajo de una publicación que no tiene absolutamente nada que ver con el tema de su pregunta, escribe un comentario sobre la compra de su Mac y sus experiencias que no están relacionadas con nada. Luego te refieres a otra publicación sin nombrarla exactamente (¿qué tal si publicas tu pregunta debajo de esa misma publicación para que puedas categorizarla temáticamente?). Además, a veces se trata de plantillas, a veces de la biblioteca y luego del hecho de que se ha agregado algo en Sonoma. ¿Cómo se supone que uno debe entender exactamente lo que quiere?

      Entonces, en lugar de insinuar que alguien no tiene idea aquí, debe explicar adecuadamente cuál es su problema y cuál es su pregunta exacta. Hice mi mejor esfuerzo para entender lo que quieres. Pero eso simplemente no es posible.

    2. Hola Falck! Incluso si ya recibió comentarios de Johannes. Estoy realmente asombrado de lo rápido que cambia tu estado de ánimo solo porque alguien que quiere ayudarte te pregunta dos veces. Tal vez sería más constructivo para usted considerar si sus comentarios también pueden ser erróneos o mal entendidos y si una o dos preguntas están justificadas.
      Opto por no participar ahora porque no participo en discusiones con trolls que usan el anonimato de Internet para comportarse como el hacha en el bosque. ¡Diviértete en otros sitios web! Saludos Jens

  3. Ya sabes, un conocedor sabe de lo que estoy hablando. Es mejor que no sigamos.
    Hay suficientes contactos que pueden responder a mis preguntas sin ningún problema porque saben lo que está en juego. ¿¿DE ACUERDO?? Creo que no leíste bien mi texto.

Escribe un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados con * markiert

En el Blog de Sir Apfelot encontrarás consejos, instrucciones y reseñas sobre productos de Apple como el iPhone, iPad, Apple Watch, AirPods, iMac, Mac Pro, Mac Mini y Mac Studio.

Especiales