launchd
In breve
launchd è il primo processo che macOS avvia all’accensione, con ID processo 1. Avvia e gestisce i servizi in background, gli agenti e molti altri processi che girano per il sistema e per ogni utente.
Quando il Mac si avvia, il kernel avvia launchd, e launchd avvia quasi tutto il resto. Avvia anche i servizi su richiesta, per esempio quando un’app ne chiede uno, e riavvia i servizi di sistema che si fermano in modo imprevisto.
In Monitoraggio Attività di solito vedi un solo launchd, quello con PID 1. Normalmente usa pochissima CPU e memoria.
In questa pagina
Perché launchd mostra una CPU alta
launchd di per sé raramente fa lavori pesanti. Quando sembra occupato, spesso sta avviando dei processi più e più volte, per esempio un elemento in background che va in crash e viene riavviato di continuo.
Cerca in Monitoraggio Attività un processo che continua a comparire e sparire, oppure controlla Impostazioni di Sistema, Generali, Elementi login per vedere quali elementi in background possono essere eseguiti. Disattivare un elemento in background che non ti serve è un primo passo sicuro.
Perché non dovresti chiudere launchd
Il launchd di sistema è il genitore dell’intero sistema. Non si può chiudere nel modo normale, e fermare il launchd di un utente terminerebbe la tua sessione. Sistema piuttosto il processo che continua ad avviare.
Come trovare l’elemento login dietro launchd
Quando launchd sembra occupato, la vera domanda è cosa continua ad avviare. Controlla prima gli elementi in background che hai autorizzato.
- Scegli menu Apple > Impostazioni di Sistema, fai clic su Generali nella barra laterale, poi su Elementi login ed estensioni.
- Scorri gli elementi che si aprono al login e l’elenco delle app autorizzate a funzionare in background. Tutto ciò che non riconosci o non usi più è un candidato.
- Disattiva un elemento alla volta e guarda launchd in Monitoraggio Attività. Se la sua CPU scende, hai trovato l’elemento.
- Se l’elemento appartiene a un’app che usi ancora, aggiorna l’app o controlla le sue impostazioni. Se non usi più l’app, disinstallala con il suo programma di disinstallazione, se ne ha uno.
Come riconoscere un servizio che continua a riavviarsi
Un servizio che va in crash e viene riavviato appare come un processo che compare in Monitoraggio Attività per un attimo, sparisce e torna con un nuovo PID. Ordinare il pannello CPU per PID, dal più alto, aiuta a notarli, perché ogni riavvio riceve un numero più alto.
Nel Terminale, launchctl list mostra i job che launchd ha caricato per il tuo account in tre colonne: il PID se il job è in esecuzione, il suo ultimo stato di uscita e la sua etichetta. Un trattino nella prima colonna significa che il job al momento non è in esecuzione. Uno stato negativo è il segnale che ha fermato il job, e molti job di Apple ne mostrano uno perché macOS ferma di proposito i servizi inattivi, quindi uno stato diverso da zero da solo non è un problema.
Per un’etichetta sospetta, esegui launchctl print gui/$(id -u)/<label>. L’output include una riga runs, il numero di volte in cui launchd ha avviato il job. Se quel numero continua a salire ogni volta che controlli, il job è in un loop di riavvii. Questi comandi leggono soltanto informazioni.
Dove si trovano gli elementi in background di terze parti
launchd legge le definizioni dei job da alcune cartelle. I job di Apple sono in /System/Library/LaunchAgents e /System/Library/LaunchDaemons, e quelli vanno lasciati stare. Gli elementi installati da altre app di solito sono in queste cartelle:
~/Library/LaunchAgents: agenti solo per il tuo account utente./Library/LaunchAgents: agenti per tutti gli utenti, installati da un amministratore o dal programma di installazione di un’app./Library/LaunchDaemons: daemon per tutto il sistema, installati da un amministratore o dal programma di installazione di un’app.
Daemon, agenti e servizi XPC
launchd esegue alcuni tipi di job, e i loro nomi compaiono in Monitoraggio Attività e nell’output di launchctl. Un daemon è un servizio per tutto il sistema, con una sola copia per tutti gli utenti del Mac, e non mostra alcuna interfaccia. Un agente viene eseguito separatamente per ogni utente che ha effettuato il login, e può interagire con quell’utente.
launchd gestisce anche i servizi XPC, piccoli programmi helper inclusi nelle app e nei framework. Quando un’app affida del lavoro a uno di questi, launchd lo avvia su richiesta e in Monitoraggio Attività compare come processo a sé. È uno dei motivi per cui processi con nomi sconosciuti vanno e vengono mentre usi un’app.
Domande frequenti
Cos’è launchd sul Mac?
È il gestore dei servizi di macOS. È il primo processo avviato all’accensione, e avvia e supervisiona la maggior parte degli altri processi.
Perché ci sono più processi launchd?
Ce n’è uno per il sistema (PID 1) e altre istanze per le sessioni degli utenti. È normale.
Posso forzare l’uscita da launchd?
No. Fa funzionare il resto del sistema. Se sembra occupato, cerca un elemento in background che continua a riavviarsi.
launchd è un virus?
No. launchd fa parte di macOS e gira sempre come PID 1. Un malware può aggiungere i propri job da far avviare a launchd, ed è per questo che controllare Elementi login ed estensioni è una buona abitudine.
Cosa mostra launchctl list?
Ogni job caricato da launchd, con il suo PID se è in esecuzione, il suo ultimo stato di uscita e la sua etichetta. Le etichette di solito indicano l’azienda e il prodotto, e questo ti aiuta a capire quale app ha installato il job.
Si possono rimuovere elementi da LaunchAgents senza rischi?
Solo per le app che riconosci e non usi più, ed è meglio disattivare l’elemento in Elementi login ed estensioni o usare il programma di disinstallazione dell’app. Non rimuovere mai niente dalle cartelle dentro /System.
Correlati
Passo per passo: Perché il Mac non va in standby.
Cerchi qualcosa di meglio di Monitoraggio Attività? Leggi le migliori alternative a Monitoraggio Attività per Mac, oppure sfoglia tutti i termini del glossario.