Come indagare processi Mac sconosciuti
Monitoraggio Attività mostra app, helper, agent, daemon e servizi di sistema. Un nome familiare o criptico è una prova debole: i software possono condividere nomi generici e il malware può copiarne uno. Valuta un processo in base al proprietario, al percorso dell'eseguibile, al processo genitore, alla firma del codice, all'andamento delle risorse e all'azione che lo ha avviato.
Scegli Vista > Tutti i processi così l'elenco non è limitato al tuo account. Aggiungi colonne utili come utente, tempo CPU, thread e tipo. Fai doppio clic su un processo per ispezionare il genitore, i file e le porte aperti e le statistiche recenti. La guida di Monitoraggio Attività di Apple offre anche le viste gerarchica e dei processi di sistema. La funzione per campionare un processo cattura per un breve periodo cosa stanno facendo i suoi thread quando sembra bloccato, senza terminarlo subito.
Quelli che preoccupano di più
- kernel_task rappresenta il lavoro del kernel; un uso elevato della CPU può dipendere dalla protezione termica, ma anche da altre attività, come spiegato in kernel_task high CPU.
- WindowServer combina le superfici disegnate dalle app; il carico può crescere con display e finestre, in WindowServer high CPU.
- mds, mds_stores, mdworker sono Spotlight che indicizza i file, in mds and mdworker high CPU.
- I processi Google Chrome Helper gestiscono pagine, estensioni, GPU e rete, come spiegato in Chrome Helper high CPU.
I daemon in background che non hai avviato tu
Questi girano da soli e quasi sempre vanno bene:
- launchd è il primo processo utente di macOS e gestisce molti servizi. È sempre in esecuzione; è il suo compito.
- trustd verifica certificati e firme delle app quando un'app si avvia o stabilisce connessioni sicure. Picchi brevi quando apri un'app sono normali.
- nsurlsessiond gestisce i trasferimenti di rete in background: iCloud, download delle app, aggiornamenti. Si attiva mentre qualcosa si sincronizza o si scarica, poi si calma.
- cloudd e bird gestiscono la sincronizzazione iCloud. Lavorano sodo subito dopo l'accesso o quando aggiungi molti file a iCloud, poi si quietano.
- coreaudiod è il motore audio di sistema. Dovrebbe essere leggero; una CPU alta prolungata a volte indica un'app audio o un plug-in che si comporta male.
- photoanalysisd analizza il contenuto delle foto per funzioni come persone e oggetti. La pianificazione è opportunistica e può variare con alimentazione, stato termico e lavoro sulla libreria.
- backupd è Time Machine che esegue un backup. Aspettati che sia impegnato mentre un backup è in corso.
- syspolicyd aiuta a far rispettare le politiche di sicurezza di sistema, inclusa la valutazione delle app. Un picco durante l'installazione o il primo avvio di un'app ha un contesto; un lavoro prolungato e non correlato merita comunque di essere misurato.
Normale o bloccato è un modello, non un timer
Cerca correlazione e progresso. Un processo che sale dopo aver aperto un'app, collegato un'unità o avviato una sincronizzazione, poi avanza nel lavoro e si calma, si comporta in modo plausibile. CPU prolungata senza progresso, memoria in crescita rapida, crash ripetuti o un picco che inizia sempre con lo stesso trigger meritano indagine. Confronta un sample, l'attività dei file aperti e i log prima di forzare l'uscita. Molti servizi di sistema si riavviano perché l'app o la policy di avvio che li richiede ne hanno ancora bisogno.
Per software di terze parti, verifica che il percorso dell'eseguibile sia dentro l'app o la cartella di supporto del vendor attesi e che la firma appartenga a quel vendor. Per i servizi Apple, modificare o eliminare la configurazione di avvio è raramente la soluzione; individua il client, l'insieme di file, il dispositivo o l'operazione di rete che alimenta il servizio.
Dimostra il proprietario prima di terminare
L’ispettore di Monitoraggio Attività è la via più semplice. In Terminale parti dal PID anziché dal nome visualizzato:
PID=1234
ps -p "$PID" -o pid=,ppid=,user=,etime=,comm=
lsof -p "$PID" | head
Il genitore e il percorso collegano un helper generico all’app che lo ha avviato. I file aperti mostrano progetto, libreria, dispositivo o database che alimenta il lavoro. Per un percorso di terze parti, controlla la firma senza cambiare nulla:
codesign -dv --verbose=4 "/path/to/the/binary" 2>&1
Un nome noto con percorso o firmatario inatteso merita indagine. Un nome sconosciuto in una posizione di sistema Apple firmata non è sospetto solo perché nuovo. Chiudi prima l’app proprietaria, poi verifica se l’helper si calma o termina prima di forzare il figlio.
Dietro le quinte: launchd e servizi on-demand
Molti daemon sono gestiti da launchd, il primo processo utente di macOS (PID 1), che non è però il genitore diretto di tutti i processi. Molti servizi in background non gira costantemente: launchd li registra e li avvia on demand quando si verifica un evento corrispondente, una connessione sicura che richiede trustd, un file passato a un importer, un messaggio XPC da un'app, poi li lascia tornare in idle. Ecco perché l'elenco cambia mentre lavori, e perché forzare l'uscita di uno spesso non serve a nulla: launchd lo riavvia alla prossima attivazione del trigger. Questo riformula l'intero elenco. Non stai guardando programmi che qualcuno ha scelto di eseguire, ma un insieme di piccoli servizi che il sistema avvia e ferma quando arriva lavoro, ed è proprio per questo che il comportamento nel tempo, non la mera presenza, è il segnale che qualcosa non va.
Dove aiuta un livello di spiegazione
Monitoraggio Attività fornisce dati e dettagli sui processi. La vista Stato di Mole può aggiungere contesto in linguaggio semplice e andamenti, ma una spiegazione basata sul solo nome è solo un'ipotesi di partenza. Percorso, proprietario, firma e comportamento decidono se il processo corrente è quello atteso.
Un controllo processi ripetibile
Annota nome del processo, utente, percorso, genitore, firma, andamento di CPU e memoria, file aperti e trigger. Campionalo mentre si verifica il problema, poi ferma l'app o l'input che lo richiede prima di toccare il daemon. Questo metodo distingue il lavoro di background ordinario, un helper del vendor bloccato e un nome contraffatto molto meglio di un elenco di definizioni di processi da solo.