Pianificazione dei processi: cosa sono Cron, Anacron, Systemd e Launchd?

I sistemi operativi consentono un facile utilizzo di computer e altri dispositivi digitali. macOS viene utilizzato su Apple Mac e iOS su iPhone. Affinché il tutto funzioni, sono visibili interfacce, opzioni di interazione e programmi, ma anche processi, servizi di sistema e script in esecuzione in background e quindi non visibili. Una parte di queste attività in background è lo scheduler, che avvia, controlla e termina automaticamente determinate attività di sistema e processi di manutenzione. Fu chiamato uno dei primi scheduler basati su Unix cron. Questo è ancora adatto per i server oggi. Sui computer sono più probabili Anacron o systemd da usare - su macOS lo è Lanciato.

Il primo programmatore nei sistemi operativi basati su Unix si chiamava cron e portava con sé cronjobs e crontab. Launchd è ora utilizzato su Apple Mac come demone per la pianificazione e molte altre attività.
Il primo programmatore nei sistemi operativi basati su Unix si chiamava cron e portava con sé cronjobs e crontab. Launchd è ora utilizzato su Apple Mac come demone per la pianificazione e molte altre attività.

Cron: l'inizio della programmazione sul computer

Cron (dal greco "chronos" per "tempo") è stato a lungo lo strumento standard per la pianificazione nei sistemi operativi simili a Unix. Originariamente sviluppato negli anni '1970, cron consentiva agli utenti di computer di definire attività da eseguire in orari specifici, in giorni specifici o a intervalli predefiniti. 

Ciò andava dalle attività di manutenzione del sistema alle notifiche e ai rapporti (generazione di registri). Cron ha servito il suo scopo per molto tempo, ma aveva anche i suoi limiti. Ad esempio, un utente doveva essere loggato per eseguire cron. Cron è ancora utilizzato sui server oggi, poiché è molto adatto per i sistemi in esecuzione permanente.

Cos'è un cron job?

Un cron job è un'attività pianificata ed eseguita dal cron scheduler. Si tratta quindi di un processo eseguito in base al tempo, un programma o uno script. Un cron job può essere impostato dal sistema, da un'app o dall'utente per programmare orari specifici per singole attività o per eseguire ripetutamente un comando a intervalli specifici. La manutenzione del sistema, il backup dei dati, la creazione di report (file di registro) e la pulizia dei database sono esempi di utilizzo qui. 

Cos'è un crontab?

Per definire e programmare i lavori cron, c'è un crontab ("tab" sta per tabella). Nei sistemi operativi basati su Unix, è un file di configurazione che può essere visualizzato come una sorta di panoramica temporale o orario. Nella panoramica crontab, i tempi di esecuzione con date diverse sono impostati per singoli comandi, processi, script, app e simili: mese, giorno del mese, giorno della settimana, ora, minuto e/o altro. La tabella crontab può essere modificata nella riga di comando o nel file terminal visualizzare e modificare. Per questo sono disponibili vari comandi crontab.

La tabella crontab è composta da sei colonne, l'ultima delle quali è utilizzata per il comando da eseguire. Le cinque colonne che precedono il comando determinano il tempo di esecuzione dello stesso, in modo che durante la lettura permanente della tabella venga riconosciuto il tempo raggiunto e il comando possa essere eseguito alla fine della riga. Le cinque colonne di programmazione sono generalmente suddivise come segue:

  • Minuto (0-59): il minuto entro un'ora in cui l'attività deve essere eseguita.
  • Ora (0-23): l'ora del giorno in cui deve essere eseguita l'attività.
  • Giorno del mese (1-31): il giorno del mese in cui eseguire l'attività.
  • Mese (1-12): il mese in cui eseguire l'attività.
  • Giorno della settimana (0-6): il giorno della settimana (da domenica a sabato) in cui eseguire l'attività; il valore 7 può essere utilizzato anche per rappresentare la domenica (cioè dividendo la settimana da 1 a 7).

Le soluzioni più moderne come Anacron, Systemd e Launchd sono per lo più retrocompatibili con cronjobs e crontab, quindi queste tecnologie Unix possono ancora essere utilizzate con i comandi del terminale appropriati per la pianificazione manuale.

Anacron: Le attività perse vengono semplicemente recuperate

Anacron è stato sviluppato come una tecnologia cron avanzata per risolvere alcuni punti deboli di cron, ad es. B. la dipendenza da un utente attivo. Nel caso di molte attività che dovevano essere eseguite a orari prestabiliti, c'era anche il rischio che venissero semplicemente perse se l'utente corrispondente non avesse effettuato l'accesso. 

Anacron ha risolto questo problema personalizzando le attività in modo che potessero essere eseguite anche se mancavano. A tale scopo, le attività passate sono state interrogate e verificato se hanno fornito un risultato o sono state annotate in un registro. In caso contrario, sono stati compensati. Anacron è quindi utile per computer e laptop che non funzionano continuamente.

Systemd: sistema di inizializzazione, pianificazione e altro in uno

Il nome systemd è composto da "system" per il sistema operativo e "d" come abbreviazione di demone. Un demone è un processo in background (più su questo qui: Cos'è un demone?). Ma systemd è più di un singolo processo in background, include un cosiddetto sistema init. L'abbreviazione init sta per "inizializzazione" e indica che si tratta di avviare il sistema operativo e caricare i processi, i servizi e le risorse necessari per questo. 

O per dirla in breve: Systemd è una raccolta di processi che garantisce il funzionamento di un sistema e offre varie pianificazioni e regolarità per esso. In cima all'elenco c'è il processo systemd-init, chiamato first (process ID 1) e controlla l'avvio, il monitoraggio e la chiusura di altri processi, per lo più demoni in esecuzione in background. Altri componenti di systemd forniscono funzionalità crontab, creano file di registro e altro ancora.

Il riassunto più breve è fornito da Voce di Wikipedia a questo proposito: "systemd è il demone che avvia e mantiene il sistema."

Launchd: sistema init da Mac OS X 10.4 Tiger

Fino alla fine Mac OS X 10.3 Pantera Dal 2003, Apple ha fatto affidamento sul processo init standard per il Mac per avviare il sistema e cron per programmare il sistema. Da Mac OS X 10.4 Tiger, che ha accompagnato il passaggio dai Mac PowerPC ai modelli con processori Intel dal 2005 al 2007, Launchd viene utilizzato come raccolta di processi di inizializzazione e programmazione. Il demone launchd è paragonabile a systemd e fornisce anche un framework per la gestione di altri demoni e attività. Launchd consiste in "Launch" per l'avvio del sistema e "d" per il demone(i).

Analogamente a systemd in altri sistemi basati su Unix, anche launchd è responsabile dell'avvio del sistema, ovvero del processo di avvio, su computer con macOS. Pertanto, a Launchd viene assegnato anche l'ID processo 1. Inoltre, questo daemon padre, insieme ai daemon che avvia e ad altre attività in background, viene eseguito mentre il sistema operativo è attivo e in uso. L'accensione del computer e l'utilizzo del sistema operativo possono essere immaginati in modo molto semplificato come un processo in quattro fasi, suddiviso come segue:

  • Il firmware viene caricato per verificare l'hardware e abilitarlo all'uso.
  • Il kernel e le sue estensioni vengono caricati, quindi il kernel attiva launchd.
  • Launchd si avvia e cerca nelle directory del demone di sistema e dell'utente, con il risultato di caricare le singole impostazioni. Viene quindi visualizzata la finestra di accesso.
  • Mentre il Mac è acceso (e se macOS viene utilizzato attivamente), Launchd esegue determinati processi in background e cron job in base ai file plist di sistema e utente e al crontab.

Lanciato su Mac: lanci più veloci e sistemi più efficienti

Ma Launchd gestisce anche altre attività complesse. È stato progettato da Apple per l'efficienza di risparmio delle risorse. In termini pratici, ciò significa, tra l'altro, che all'avvio del sistema e all'accesso dell'utente vengono caricati solo i demoni necessari. Altri demoni vengono caricati solo quando sono veramente necessari. 

Ad esempio, la chiave "OnDemand" può essere assegnata per i demoni di rete in modo che Launchd li carichi solo quando sono necessari per una richiesta di rete ("on demand"). Il risultato è che i sistemi operativi tendono a funzionare più velocemente o in modo più fluido con Launchd. Ciò potrebbe consentire la compatibilità con hardware meno recente e più lento.

Il ruolo dei file plist nell'uso di Launchd

Come notato sopra, su Apple Mac, Launchd carica impostazioni, configurazioni e demoni specifici per la gestione delle attività. Tra l'altro, vengono caricati dalle directory di sistema (ad es. /System/Library/LaunchDaemons), che specificano determinate proprietà e attività del rispettivo sistema operativo. Ma anche dalle directory degli utenti (ad es. /Library/LaunchDaemons), che contengono le singole impostazioni, configurazioni, estensioni e voci di login degli utenti.

Ognuno di essi è memorizzato in un elenco di proprietà, o plist in breve. I file plist in queste e altre directory in macOS vengono utilizzati, tra le altre cose, per personalizzare il sistema ed eseguire processi in background. Oltre agli effetti direttamente visibili, vengono utilizzati anche per indicizzare i contenuti (per esempio. B. per Riflettore) o per Impostazioni Bluetooth. Se hanno errori, possono sorgere problemi. Questo è il motivo per cui alcune guide alla risoluzione dei problemi di Mac consigliano di eliminare determinati file plist.

Ulteriori informazioni possono essere trovate nei post di Jens:

Sintesi sull'argomento

In realtà volevo solo scrivere un post su cron, cronjobs e crontab. Ma queste tecnologie di pianificazione Unix non sono più utilizzate nella loro forma originale su Apple Mac. Ecco perché ho mostrato lo sviluppo dei demoni di pianificazione basati su di esso. Da Anacron via Systemd, il percorso ha poi portato a Launchd, che da tempo viene utilizzato sotto Mac OS X, OS X e macOS. Spero di essere stato in grado di spiegare in modo comprensibile la funzionalità di Launchd e come si relaziona al sistema, ai singoli account utente e ai file plist.

Ecco alcune fonti per ulteriori letture e, soprattutto, tecnicamente più approfondite:

  • Articolo di Wikipedia sul demone cron: qui
  • Articolo di Wikipedia su Anacron: qui
  • Articolo di Wikipedia su systemd: qui
  • Articolo di Wikipedia su Launchd: qui

I miei consigli e trucchi sulla tecnologia e su Apple

Ti è piaciuto l'articolo e le istruzioni sul blog ti hanno aiutato? Allora sarei felice se tu il blog tramite un'iscrizione stabile sosterrebbe.

9 risposte a "Pianificazione dei processi: cosa sono Cron, Anacron, Systemd e Launchd?"

  1. Ho comprato un MacBook Pro M2 Pro 2023. Il mio vecchio Mac aveva ancora un processore Intel, vecchio di 7 anni. La differenza, quello nuovo non si scalda. Se ne comprerò uno nuovo tra 7 anni è una questione aperta. Queste parti non sono economiche. Ma chiunque abbia dovuto lavorare con computer Windows apprezzerà un Apple. Hardware e software da un'unica fonte. A causa della memoria non è così bello. Devi prendere quello che c'è in offerta.
    Darò un'occhiata più da vicino al tuo portale.
    Oh sì, hai una descrizione di come Apple memorizza i dati, tranne che sui documenti.
    Se non creo una cartella per questo. Ad esempio: i modelli per Pages o Numbers.

    1. Ciao Falco! Sì, i Mac sono sempre un po' più costosi, ma personalmente penso che il prezzo sia giusto se mi risparmia i grattacapi che ho avuto con il mio PC.
      Riguardo alla tua domanda: non ho capito bene. Cosa intendi esattamente con "come Apple memorizza i dati"?

  2. Sono totalmente d'accordo sul prezzo e cose del genere.
    A causa dei dati, Pages e Numbers hanno modelli tra cui posso scegliere e posso proteggere il mio particolare modello. La funzione della libreria non mi è così chiara, alcune cose sono state aggiunte sotto Sonoma. Queste sono aree che vengono eseguite in background. Ecco cosa intendevo.

    1. Ciao Falco! Scusa se sono così ottuso. Non capisco bene... stai parlando di Pages per esempio. Dove c'è una biblioteca? Intendi i "libri" sotto i modelli? O sono completamente fottuto? 😂

    1. Johannes Domke

      Ciao Falco.

      Primo: non essere sfacciato!

      Secondo, che ne dici di porre correttamente la tua domanda, in modo che le persone sappiano cosa vuoi in primo luogo?

      Dopotutto, sotto un post che non ha assolutamente nulla a che fare con l'argomento della tua domanda, scrivi un commento sull'acquisto del tuo Mac e sulle tue esperienze che non sono correlate a nulla. Quindi fai riferimento a un altro post senza nominarlo esattamente (che ne dici di pubblicare la tua domanda proprio sotto quel post in modo da poterla classificare tematicamente?). Inoltre, a volte si tratta di modelli, a volte della libreria e poi del fatto che qualcosa è stato aggiunto in Sonoma. Come si fa a capire esattamente quello che vuoi?

      Quindi, invece di insinuare che qualcuno non ha idea qui, dovresti spiegare correttamente qual è il tuo problema e qual è la tua domanda esatta. Ho fatto del mio meglio per capire cosa vuoi. Ma non è possibile.

    2. Ciao Falco! Anche se hai già ricevuto feedback da Johannes. Sono davvero stupito di quanto velocemente cambi il tuo umore solo perché qualcuno che vuole aiutarti lo chiede due volte. Forse sarebbe più costruttivo per te considerare se i tuoi commenti potrebbero essere sbagliati o fraintesi e una o due domande sono giustificate.
      Sto rinunciando ora perché non mi impegno in discussioni con i troll che usano l'anonimato di Internet per comportarsi come l'ascia nel bosco. Divertiti su altri siti web! Saluti Jens

  3. Sai, un intenditore sa di cosa sto parlando. È meglio che non andiamo avanti.
    Ci sono abbastanza contatti che possono rispondere alle mie domande senza problemi perché sanno qual è la posta in gioco. OK?? Penso che tu non abbia letto bene il mio testo.

Scrivi un commento

Il tuo indirizzo e-mail non verrà pubblicato. I campi obbligatori sono contrassegnati con * segnato

Nel blog di Sir Apfelot troverai consigli, istruzioni e recensioni sui prodotti Apple come iPhone, iPad, Apple Watch, AirPods, iMac, Mac Pro, Mac Mini e Mac Studio.

Speciali
Shopping
  •  
  •